移植版本:emwin5.32
移植方式:通用驱动移植,即使用GUIDRV_Template,只需要提供读点函数和打点函数就可以了。
LCD驱动:SSD1963
遇到的问题:
1、使用通用移植方式会造成系统时钟明显变慢,但是能正常显示。
2、使用官方提供的驱动能够正常运行,就颜 {MOD}读取出现了点问题,不过现在解决了。
3、在线调试没有出现HardFault_Handler,现在搞到我很郁闷,这问题一直烦着我,根本不懂怎么去排查,我已经把程序精简成剩下emwin和LCD驱动了
关键代码
a、emwin的LCD配置
- void LCD_X_Config(void) {
- //
- // Set display driver and color conversion for 1st layer
- //
- GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER, COLOR_CONVERSION, 0, 0);
- //
- // Display driver configuration
- //
- if (LCD_GetSwapXY()) {
- LCD_SetSizeEx (0, YSIZE_PHYS, XSIZE_PHYS);
- LCD_SetVSizeEx(0, YSIZE_PHYS, XSIZE_PHYS);
- } else {
- LCD_SetSizeEx (0, XSIZE_PHYS, YSIZE_PHYS);
- LCD_SetVSizeEx(0, XSIZE_PHYS, YSIZE_PHYS);
- }
- }
复制代码
- int LCD_X_DisplayDriver(unsigned LayerIndex, unsigned Cmd, void * pData) {
- Init_LCDHard(); //LCD硬件初始化程序
- GUI_USE_PARA(LayerIndex);
- GUI_USE_PARA(Cmd);
- GUI_USE_PARA(pData);
- return 0;
- }
复制代码
b、LCD硬件驱动程序- void SSD1963_PutPixelGUI(WORD _psX, WORD _psY, WORD _psColor)
- {
- LCD_SetCursor(_psX,_psY);
- LCD_WR_REG(0x2C);
- LCD_WR_Data(_psColor);
- }
复制代码- WORD SSD1963_GetPixelGUI(WORD _psX, WORD _psY)
- {
- WORD usRGB;
-
- LCD_SetCursor(_psX,_psY);
- LCD_WR_REG(0x2E);
-
- // usRGB = LCD_RD_DATA();
- // usRGB = LCD_RD_DATA();
- usRGB = LCD_RD_DATA();
- return usRGB;
- }
复制代码
c、主函数程序-
- SystemInit(); //设置系统时钟72MHz
-
- Bsp_init(); //初始化系统
- {:cry:}
- PWM_LCD_Brightness(20);
-
- GUI_SetBkColor(GUI_WHITE);
- GUI_Clear();
- GUI_SetColor(GUI_LIGHTBLUE);
- GUI_AA_SetFactor(3);
- GUI_AA_FillCircle(90, 190, 80);
复制代码
有哪位朋友曾经遇到过这个问题,或者有解决这个问题的思路麻烦分享下!跪求
再考虑emwin的时候
一点就通了,很可能就是这个原因了,我定时器运行时钟应该是正常的。太感谢了。
一周热门 更多>