您的位置:首页 > 产品设计 > UI/UE

关于EMWIN移植、enwin调试时候卡GUI_Init的问题

2018-01-31 14:47 926 查看
最近在调试移植emwin到STM32时候出现了一些问题,百度后发现之前有不少人也出现了相应的问题,但都没有
看到有用的解决方法出来。希望我这个文章能帮到一些朋友。

 根据emwin使用指南开始移植emwin,移植完毕并编译通过后,下载到开发板,发现除了屏幕校准完毕之后屏幕就
没有其它东西了,加个简单的LCD_ShowString能够显示出来,这就排除了屏幕接线问题。
 接下来用串口调试程序,发现程序卡在GUI_Init()这里了(GUI_Init()前面已经初始化了CRC时钟,不关

这的问题),GUI_Init是内部函数,不能在MDK中go
to difine 查看,只能查看相关资料,发现GUI_Init()

函数主要是按顺序调用了GUI_X_Config()、LCD_X_Config()和LCD_X_DisplayDriver()这三个函数,所以在

这三个函数设置断点,在看到GUI_X_Config()里面时发现我用的是外部RAM,



然而我这开发板并没有外部RAM,故把#define
USE_EXRAM 1改为#define USE_EXRAM  0,即使用内部RAM,
再往下看,程序是卡LCD_X_Config函数的
GUI_DEVICE_CreateAndLink(&GUIDRV_Template_API,
GUICC_M565, 0, 0) 里面了,
正当想着要如何处理时候,突然想到之前这个内部RAM,这个移植是基于用外部RAM的,会不会就
是RAM内存大小的设置问题,于是想到了GUI_NUMBYTES这个宏,



之前是设置GUI_NUMBYTES为300*1024,那肯定是不行的嘛,在没有加外部RAM的情况下你内部RAM用完
也没有300呀,用的是stm32f103zet6内部只有64k
sram,所以果断把GUI_NUMBYTES改小试下,
改为了30*1024,编译下载,
触摸校准屏幕,然后,界面出来了,程序运行流畅了,emwin移植宣告成功~
所以说遇到问题时不要慌张,要一步步慢慢调试,问题自然而然的就会得到解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  enwi GUI_Init
相关文章推荐