标题: 关于用STC8单片机驱动OLED的问题,晶振频率调到6M以上点不亮 [打印本页]

作者: 杀死比亚    时间: 2020-2-27 21:58
标题: 关于用STC8单片机驱动OLED的问题,晶振频率调到6M以上点不亮
求教大神一个问题
我用STC8A4K驱动0.96OLED,用的IIC通讯,采用软件模拟,和硬件IIC通讯,两种方式在晶振频率小于等于6M时,能正常驱动;
但是当把晶振频率调到6M以上时,软件模拟IIC的根本不能驱动OLED,而硬件IIC驱动的OLED会出现卡屏的情况,调到24M时,两种
通讯方式都不能点亮OLED。
请问,大家有没遇到过这种情况,有什么解决方法没有?
调了延时程序,在高频下,还是不能点亮OLED,


但是用SPI通讯时,则不受晶振频率的影响。

作者: 杀死比亚    时间: 2020-2-27 22:14
有没有人呀,这个问题怎么解决呀
作者: hj08102    时间: 2020-2-27 22:56
STC8A4K的执行速度应该比传统的8051单片机快不少,通常的IIC通讯都是采用nop来实现软件延时,可能你需简要根据这块单片机的速度多加几个nop。如果你有手中有逻辑分析仪(网上20多块钱)可以抓下波形看看应该是延时不够造成的,希望对你有帮助。
作者: Y_G_G    时间: 2020-2-27 23:28
1:IIC一定要有和该器件相对应的延时,时钟和应答都要有
2:OLED对信号的响应时间也是有要求的,有的要求几mS的,这个要看一下数据手册的
3:延时程序尽量用下载器提供的代码
作者: 杀死比亚    时间: 2020-2-28 07:52
hj08102 发表于 2020-2-27 22:56
STC8A4K的执行速度应该比传统的8051单片机快不少,通常的IIC通讯都是采用nop来实现软件延时,可能你需简要 ...

谢谢你,我试一下
作者: 杀死比亚    时间: 2020-2-28 07:53
Y_G_G 发表于 2020-2-27 23:28
1:IIC一定要有和该器件相对应的延时,时钟和应答都要有
2:OLED对信号的响应时间也是有要求的,有的要求几mS ...

感谢帮助,我调来试一下
作者: baoyuanfu    时间: 2020-3-16 20:19
想问下你的问题解决了吗
作者: yfzhang    时间: 2020-5-17 05:31
我也遇到此问题了,问下楼主解决了没呀
作者: 杀死比亚    时间: 2020-5-17 13:25
本帖最后由 杀死比亚 于 2020-5-17 13:52 编辑
yfzhang 发表于 2020-5-17 05:31
我也遇到此问题了,问下楼主解决了没呀

用软件模拟IIC方式,解决了,硬件IIC的还是会受到一点影响
作者: 杀死比亚    时间: 2020-5-17 15:34
问题已解决,见此贴,http://www.51hei.com/bbs/dpj-187790-1.html
作者: 长风007    时间: 2022-2-25 11:28
延时的时间与IIC的规则相应,一般是因为STC软时间误差引起的。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1