关于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移植宣告成功~
所以说遇到问题时不要慌张,要一步步慢慢调试,问题自然而然的就会得到解决。
看到有用的解决方法出来。希望我这个文章能帮到一些朋友。
根据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移植宣告成功~
所以说遇到问题时不要慌张,要一步步慢慢调试,问题自然而然的就会得到解决。
相关文章推荐
- IOS关于XIB文件和调试时候显示不一样问题
- 关于vs2008 和 vs2010 工程常在断点调试的时候卡死(卸了输入法即解决了问题)
- 关于不同工程调用时候,调试问题
- IOS关于XIB文件和调试时候显示不一样问题
- 关于调试指纹时候遇到的其他问题
- android编程中遇到的关于调试百度地图时出现的 java.lang.UnsatisfiedLinkError: initClass 问题的原因及解决办法
- 关于cocos2d-x项目移植到android平台的时候明明已经将资源复制到assets还是出现的assets is nullptr的问题
- 关于ADS1.2再利用AXD进行调试的时候总是进入disassembly问题的解决办法!
- 提交字符数长度在[1000,2000]即字符数长度在1000到2000之间的时候报:关于“ora-01483:DATE或NUMBER赋值变量的长度无效”的问题
- 关于Mac 中Eclipse 的SVN 提交的时候提示 out of date的问题
- 关于调试的一个问题
- Domain=NSOSStatusErrorDomain Code=1937337955 关于iOS录音AVAudioRecorder与音频播放AVAudioPlayer真机调试录音不能播放的问题
- 关于在VS中调试Unity项目的解决过程和遗留问题
- 解决在vc调试代码结束时候,不能把控制台黑屏目退出的问题
- 关于安卓调试桥adb.exe被金山wps软件导致冲突问题。
- Tomcat调试ok的代码移植到Weblogic11g(server10.3.3),遇到的问题解决记录。
- node.js 在使用child_process 模块时候,调试端口占用的问题解决方案(EADDRINUSE)
- 关于freertos移植到stm32出错,程序直接跳到HardFault_Handler的问题。
- failed to open stream解决办法-关于WIN主机下配置PHP的若干问题解决方案总结
- 在使用chrome调试angular2的时候出现下面问题