高级会员
- 积分
- 712
- 金钱
- 712
- 注册时间
- 2015-11-26
- 在线时间
- 139 小时
|
1金钱
stm32f429+emwin+ucos iii显示位图或者png格式的图片会花屏,而延时函数如果修改为delay_ms()就没有问题,GUI_Delay()显示就会花屏,代码如下:
void emWin_Task(void *p_arg)
{
GUI_CURSOR_Show();
GUI_DrawBitmap(&bmNFC_Back, 0, 0);
// displyjpeg("1:/JPG/HH-02.jpg",1,0,0,1,1);
while(1)
{
delay_ms(100);//图片显示正常
//GUI_Delay(100);//这个时候图片显示会花屏
}
}
emwin和ucos iii都是移植原子的例程,GUI_Delay()相对于delay_ms()不同的就是GUI_Delay()内部调用了重绘函数,但这又有什么关系吗?原子的例程好像不花屏,请各位大牛指点一二,小弟感激不尽!!谢谢!
|
-
调用delay_ms()延时函数正常显示
-
调用GUI_Delay()延时函数的时候显示花屏
最佳答案
查看完整内容[请看2#楼]
终于找到原因了,代码顺序的问题,把启动窗口存储设备写在了GUI_Init()之前了,修改一下顺序就好了,
_HAL_RCC_CRC_CLK_ENABLE(); //使能CRC时钟
WM_SetCreateFlags(WM_CF_MEMDEV); //启动所有窗口的存储设备
GUI_Init(); //STemWin初始化
WM_MULTIBUF_Enable(1); //开启STemWin多缓冲,RGB屏可能会用到
修改为以下代码花屏就消失了,再也不用在回掉函数里面重新绘制了背景了
__HAL_RCC_CRC_CLK_ENABLE(); //使能CRC ...
|