|
STM32F407(V5)开发板上面带有的7寸屏幕使用的是RA8875驱动芯片,和RA8876不通用,因此使用10寸电阻屏的时候如果使用的是ucosIII+stemwin的话需要进行UCGUI优化(图1),这样需要优化完成并且移植RA8875的驱动,否则会使得屏幕出现花屏或者黑屏等现象不能正常显示,因此需要仿照RA8875的驱动去编写RA8876的驱动,下面是我按照RA8875编写的RA8876的驱动,亲测使用性能良好!- /*
- *********************************************************************************************************
- * oˉ êy Ãû: RA8876_DrawHColorLine
- * 1|ÄüËμÃ÷: »æÖÆò»ìõ2êé«Ë®Æ½Ïß £¨Ö÷òaóÃóúUCGUIμĽó¿úoˉêy£©
- * DÎ 2Σo_usX1 £oÆeê¼μãX×ø±ê
- * _usY1 £oˮƽÏßμÄY×ø±ê
- * _usWidth £oÖ±ÏßμÄ¿í¶è
- * _pColor : ÑÕé«»o3åÇø
- * ·μ »Ø Öμ: ÎT
- *********************************************************************************************************
- */
- void RA8876_DrawHColorLine(uint16_t _usX1 , uint16_t _usY1, uint16_t _usWidth, uint16_t *_pColor)
- {
- uint16_t i;
-
- if (g_LcdDirection == 0) /* oáÆá */
- {
- Goto_Pixel_XY(_usX1, _usY1); /* éèÖÃμã×ø±ê */
- }
- else if (g_LcdDirection == 1) /* oáÆᣬDy×a180¶è */
- {
- Goto_Pixel_XY(g_LcdWidth - _usX1, _usY1);
- }
- else if (g_LcdDirection == 2) /* êúÆá */
- {
- Goto_Pixel_XY(_usY1, _usX1);
- }
- else if (g_LcdDirection == 3) /* êúÆᣬDy×a180¶è */
- {
- Goto_Pixel_XY(g_LcdHeight - _usY1, _usX1);
- }
-
- // RA8876_CmdWrite(0x04); /* Äú′æSDRAMêy¾Y¶á/D′½ó¿ú */
- // Check_Mem_WR_FIFO_not_Full();
- #ifdef MCU_16bit_ColorDepth_16bpp /* Ñ¡Ôñ16λ16bppÑÕé«éî¶è */
- for(i=0;i<_usWidth;i++)
- {
- Check_Mem_WR_FIFO_not_Full();
- // RA8876_CmdWrite(*_pColor++); /* Äú′æSDRAMêy¾Y¶á/D′½ó¿ú */
- RA8876_CmdWrite(0x04); /* Äú′æSDRAMêy¾Y¶á/D′½ó¿ú */
- RA8876_DataWrite(*_pColor++); /* D′èëÑÕé« */
- }
- #endif
- Check_Mem_WR_FIFO_not_Full();
- }
复制代码 |
-
UCGUI优化宏定义
-
使用RA8876的驱动函数替换相应的RA8875的函数
评分
-
查看全部评分
|