基于TI cc2541的I2C 的OLED应用,遇到一些问题

2019-07-24 16:28发布

最近在cc2541上,用到了I2C,并和OLED建立通信。
我尝试过使用硬件I2C,结果不理想,不知打哪里出问题了,
最后又使用了软件i2C,但OLED仍然没有显示。
只能又来发帖,请教各位经验之士了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
azq13158
1楼-- · 2019-07-25 17:20
dirtwillfly 发表于 2015-9-28 13:57
你用的OLED什么型号的?有时序图吗?
这个主要是慢慢调时序,多用示波器或者逻辑分析仪观察 ...

这个和延迟有关系么,会不会是延迟时间不够,或者太长,造成时序错乱呢。(ps: 示波器的没有)
dirtwillfly
2楼-- · 2019-07-25 17:25
azq13158 发表于 2015-9-28 14:40
这个和延迟有关系么,会不会是延迟时间不够,或者太长,造成时序错乱呢。(ps: 示波器的没有) ...

很有可能啊。
cc2541也是51的内核,你用51的代码稍微改一下就可以。
另外注意,你的cc2541运行频率和从网上找的代码是否一致。
即使代码完全一样,如果主频不同,也不能正常显示的。
azq13158
3楼-- · 2019-07-25 21:09
 精彩回答 2  元偷偷看……
dirtwillfly
4楼-- · 2019-07-25 22:24
azq13158 发表于 2015-9-28 15:19
主频不同,  延迟函数延迟的时间就不同。主要是这个不同是吧

是啊
azq13158
5楼-- · 2019-07-25 23:04
dirtwillfly 发表于 2015-9-28 16:31
是啊

#define I2C_IO_ENABLE()       st( I2CWC =  0x83;)
#define I2C_SDA_HI()          st( I2CIO |= 0x01;)
#define I2C_SDA_LOW()         st( I2CIO &= ~(0x01);)
#define I2C_SCL_HI()          st( I2CIO |= 0x02;)
#define I2C_SCL_LOW()         st( I2CIO &= ~(0x02);)

这是软件模拟的i2c,这样写是对的吗。  I2C_SDA_HI()    等价于 SDA = 1
huarana
6楼-- · 2019-07-26 03:11
这个很容易就搞定的吧 - -

主要是看你哪个oled模块方式配置对吗

上面有几个跳线电阻,默认是跳到spi的  。

一周热门 更多>