IIC通讯总在while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));里面

2019-07-14 13:37发布

IIC通讯,总是是在        while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));里面,不知道为什么,感觉上是没等到响应,我想问一下,STM32用库函数写IIC通信,等待ACK,用写中断服务函数吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
zhouxk
2019-07-15 00:00
本帖最后由 toofree 于 2018-2-27 11:55 编辑

好好整理一下问题吧。
用的哪个型号的MCU,具体型号?用的哪个版本的库?要控制的IIC外设是什么?

我只能告诉你,我在第一次用I2C读写EEPROM AT24CXX的时候,也遇到过类似这样的死循环出不来的问题,是有办法解决的。
解决方法大致有三种:
1、IO模拟I2C
2、操作完后,不能马上去读标志位,得延时一小会儿
3、while()循环中,增加一个超时退出自加变量

一周热门 更多>