目录
1.背景
最近刚把TMS320F28377D的IIC协议调通,本打算利用IIC驱动一下显示屏,不过左也搞不动右也搞不动,最后想起来有一次偶然看到网上有人也说过这个问题他说要在每一条语句后面加延时,我试了试果然。
2.实际情况
程序如下图所示
看一下实际情况
用逻辑分析仪抓一下波形
什么鬼为啥就发送一个命令就直接发数据了?
在每一条发送指令或数据后面都加入延时
看一下实际情况
再用逻辑分析抓一下波形
3.对比STM32
STM32模拟IIC的波形如图,主要对比两个字段直接的时间
F28377硬件IIC波形如图
不知道该说些啥了。。。。
4.总结
我轮流试了一下最低延迟时间我压到300uS就是最快了,再快就又不显示了,语句是TI官方的延迟
DEVICE_DELAY_US(300);
通信速率是100KHz,原本我想降低速率来减少延迟的,但是再低屏幕就不显示了。
我这里用的是TMS320F28377D但是我看到网上有人用TMS320F28335也是同样情况。
其实出现这个情况还说挺让我失望的,原本以为用了硬件IIC后刷新率能比软件高,好嘛结果告诉我还要加延迟,这情况还比软件糟糕,只能说是凑合着用了。