IO口模拟I2C通信

2019-07-14 18:25发布

IO口模拟I2C通信中,是否用加超时检测,和PEC检错,因为我看了很多网上的例程,都没有这俩,但STM32芯片手册中有介绍这两点,那到底用不用呢,怎么用,有这方面的例程吗?方便贴出来给参考一下吗
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
YY599566
1楼-- · 2019-07-16 00:00
tianyou15 发表于 2018-8-23 17:57
发一个我在用的IO模拟IIC程序给你,不需要判断超时
static void I2c_delay_us(uint32_t i)
{

亲,有两个问题,(1)为什么起始信号中,对SDA有两次拉低,而SCLK拉高一次就不管了呢,我看别的例程就是将SDA拉低后将SCL也拉低;(2)每一个函数中不用设定IO的传输方向吗?比如ACK和等待ACK时SDA的传输方向是不同的啊?
testd018
2楼-- · 2019-07-16 01:43
我是没加,不过我也支持加了能让程序变得更加谨慎
vyewrewr
3楼-- · 2019-07-16 02:40
超时是一定要加的,IIC的时序是比较严格的,要按IIC的时序进行。
而PEC则可以不用的。一般用的模拟IIC都没有用到。
YY599566
4楼-- · 2019-07-16 03:01
vyewrewr 发表于 2018-8-23 19:09
超时是一定要加的,IIC的时序是比较严格的,要按IIC的时序进行。
而PEC则可以不用的。一般用的模拟IIC都没有用到。

知道了,谢谢!
YY599566
5楼-- · 2019-07-16 05:47
 精彩回答 2  元偷偷看……
YY599566
6楼-- · 2019-07-16 08:15
YY599566 发表于 2018-8-23 19:26
我还想问一下,等ACK用中断吗,中断可是必须的吗

如果用硬件I2C的话,等ACK是一定要用中断的吗

一周热门 更多>