- 积分
- 3553
- 下载分
- 分
- 威望
- 点
- 原创币
- 点
- 下载
- 次
- 上传
- 次
- 注册时间
- 2014-11-13
- 精华
|
马上注册,获取阅读精华内容及下载权限
您需要 登录 才可以下载或查看,没有帐号?注册
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的电路图(可行):
|
|