迅维网
标题:
关于STM32,液晶屏上电需复位才能正常运行问题的解决方法
[打印本页]
作者:
バ幸福De右岸
时间:
2016-8-22 07:10
标题:
关于STM32,液晶屏上电需复位才能正常运行问题的解决方法
最近在设计一款手环,使用到STM32f103和0.9寸OLED液晶屏。烧写程序正常运行后,关闭
电源
重新上电需要手动复位一下液晶屏才
能正常显示。起初判断是
芯片
复位问题。以下是心片
电路
图:
登录/注册后看高清大图
1、第一次判断是烧写软件设置问题,这个最容易忽视,最容易出错:
解决:
KEIL工程--右键---Options XX---Utilities---Settings---勾选reset-and-run;
然而发现设置正确,有打勾。
2、第二认为是上电复位电路问题,参考其他复位电路电容是104。
理论上100nf的电容对于芯片的复位时间是足够的,为了保险起见,
还是改成一个比较大的电容10uf,这个应该够大了,哈哈,这个
延时时间对STM32来说,估计它等得都蛋疼了。
满怀期待在次上电。。。。。。还是没能看到希望的曙光。
(写这个没用的过程是因为这个复位电容对上电复位来说挺重要的,值得重视)
3、检查boot1、2,都有接地啊。。这就蛋疼了。怀疑10k电阻问题,虚焊!!!
嗯嗯,直接不要电阻吧,直接接地。(实践证明boot直接接地是没问题的,但建议
一般情况下还是不要这么做,防止刚好有程序无意让那个引脚拉高了,电流应该会很大,
个人观点,没去深入了解STM32的内部结构,至少51
单片机
的是这样)。
上电。。。。。。耐心等待n小时,这就尴尬了。。。。。没亮!
(
开发板
上上电出现这个问题一般是boot问题)
4、检查了好久,差点忘了排除法这个必杀技。(修电脑不就是这样做的么)
SB了一整天。在一个系统中出现问题,一般直接采用排除法,能相对很快找出问题。
断掉其他模块,加上启动马达程序,查看是否是芯片复位问题(接LED也可以)。
发现上电后马达能转,恍然大悟!
复位时间问题!是液晶屏复位时间比芯片的长!!!
液晶屏上电后还没复位完成(为节省IO口液晶屏采用上电复位)芯片就已经复位完成了
并且发命令数据给液晶屏了造成液晶屏接收到的命令是乱的。所以不会正常显示(暗)。
总结一下:上电后液晶屏显示乱码,复位后正常估计也是这个原因造成的。
解决方法:有点笨,就在main函数第一句上加上个100ms的延时(时间自己可以测试修改)
100ms其实有点长了。
因此以后在程序设计中需注意一下上电复位的时间问题,MPU6050也有此问题。
最后附上OLED的电路图(可行):
登录/注册后看高清大图
作者:
BYFLWX
时间:
2016-8-22 07:51
感謝分享信息,学习了
作者:
hbgz518
时间:
2016-9-14 17:12
老大可不可以给个显示的代码学习学习
作者:
沈元
时间:
2016-9-18 01:20
单片机高手呀
欢迎光临 迅维网 (https://www.chinafix.com/)
Powered by Discuz! X3.4