迅维网

查看: 13209|回复: 3
打印 上一主题 下一主题

关于STM32,液晶屏上电需复位才能正常运行问题的解决方法

[复制链接]
跳转到指定楼层
1#
发表于 2016-8-22 07:10:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 中国 来自 中国

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
  最近在设计一款手环,使用到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的电路图(可行):

                               
登录/注册后看高清大图






2#
发表于 2016-8-22 07:51:16 | 只看该作者 来自: 中国 来自 中国
感謝分享信息,学习了

回复 支持 反对

使用道具 举报

3#
发表于 2016-9-14 17:12:24 | 只看该作者 来自: 内蒙古 来自 内蒙古
老大可不可以给个显示的代码学习学习

回复 支持 反对

使用道具 举报

4#
发表于 2016-9-18 01:20:21 | 只看该作者 来自: 浙江宁波 来自 浙江宁波
单片机高手呀 

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图 AI维修
助手



芯片搜索

快速回复