初级会员

- 积分
- 56
- 金钱
- 56
- 注册时间
- 2013-10-10
- 在线时间
- 1 小时
|
5金钱
这几天借助论坛里某位大神的知道,STemWin移植成功了。没有用STemWin自带的液晶驱动,自己填的,就像移植UCGUI3.90一样。
这个是工程文件框架......这样移植的话,以后不管遇到什么控制器,就算emWin没有的型号都可以自己写了。
这个是移植成功后的画面
但是遇到一个比较坑爹的问题:就是屏刷的特慢,都看见闪了,郁闷的是我底层已经优化了.......
/*********************************************************************
*
* _FillRect
*/
static void _FillRect(GUI_DEVICE * pDevice, int x0, int y0, int x1, int y1)
{
u16 leng,i,j;
leng = x1-x0+1;
for(j=y0;j<=y1;j++)
{
LCD_SetCursor(x0,j);
write_data_Prepare();
for(i=0;i<leng;i++)
LCD_RAM = LCD_COLORINDEX;
}
}
/*********************************************************************
*
* _DrawHLine
*/
static void _DrawHLine(GUI_DEVICE * pDevice, int x0, int y, int x1)
{
u16 leng,i;
leng = x1-x0+1;
LCD_SetCursor(x0,y);
write_data_Prepare();
for(i=0;i<leng;i++)
LCD_RAM = LCD_COLORINDEX;
}
/*********************************************************************
*
* _DrawVLine, not optimized
*/
static void _DrawVLine(GUI_DEVICE * pDevice, int x, int y0, int y1) {
u16 i;
for(i=y0;i<y1;i++)
{
LCD_SetCursor(x,i);
write_data_Prepare();
LCD_RAM = LCD_COLORINDEX;
}
}
这是3个比较重要的函数,都采用了LCD自加的方法画线。还有16BPP那个也优化了,可是以屏幕闪的还是特别厉害,貌似整个屏幕都在震动。不知道问什么.......
液晶控制器是SSD1963的。不知道那位大侠可以指点迷经....
哦对了顺带问下.....UCGUI官网的上的emWin更新到了5.24,我用KEIL5.10编译时候出错
..\Debug\test.axf: error: L6024U: Library GUI.lib contains an invalid member name.
具体我也不清楚...莫名奇妙.....
|
最佳答案
查看完整内容[请看2#楼]
回复【2楼】正点原子:
---------------------------------
原来LCD控制器的的毛病,用的是SSD1963,解决的,这控制器很容易收到干扰。
|