STM32F0的IIC通讯TXIS始终为0

2019-07-14 18:24发布

采用DISCOVERYF0调试IIC接口,对应24C02芯片
在发送地址时,加了一个超时循环判断
//第一步发送START信号和器件固定地址
I2C_TransferHandling(I2C1,AT24C02_AD,1,I2C_Reload_Mode, I2C_Generate_Start_Write); //设置24C02地址,启动start信号传输
IIC_timeout=AT24C02_DELAY_TIME;
while(I2C_GetFlagStatus(I2C1, I2C_FLAG_TXIS) == RESET)                  //等待TXIS标志位
  {
    if((IIC_Timeout--) == 0) return IIC_TIMEOUT_UserCallback();           //超出时间门限,仍未发送完毕,则进入回调函数
  }
在发送地址后,I2C_GetFlagStatus(I2C1, I2C_FLAG_TXIS)返回值始终为RESET,进入内部看I2Cx->ISR等于0x00008001,
其中BUSY和TXE位为1,而TXIS始终为0,
求助!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
蒋jiang
1楼-- · 2019-07-15 10:12
我用硬件I2C也是遇到这样的问题,写入是正确的(我用模拟I2C读出来确认过),但是用硬件I2C读就是不行,不知道怎么回事了!
leilijiao
2楼-- · 2019-07-15 13:57
蒋jiang 发表于 2018-8-23 20:19
我用硬件I2C也是遇到这样的问题,写入是正确的(我用模拟I2C读出来确认过),但是用硬件I2C读就是不行,不知道怎么回事了!

参看这个可能会对你有帮助,http://www.stmcu.org/module/forum/thread-604877-1-1.html
ljfdllwq
3楼-- · 2019-07-15 14:00
 精彩回答 2  元偷偷看……
huzp_123
4楼-- · 2019-07-15 16:55
楼主解决了吗?和你遇到的问题一样
huzp_123
5楼-- · 2019-07-15 17:15
蒋jiang 发表于 2018-8-23 20:19
我用硬件I2C也是遇到这样的问题,写入是正确的(我用模拟I2C读出来确认过),但是用硬件I2C读就是不行,不知道怎么回事了!

现在解决了吗
蒋jiang
6楼-- · 2019-07-15 17:21
huzp_123 发表于 2018-8-23 20:57
现在解决了吗

没解决,后来就用模拟的了

一周热门 更多>