问题:
- 在iic读的时候,偶发出现停止位丢失的情况
环境:
- F28335 + 3个iic从设备
- IIC时钟 400Khz
- RM=1 (重复模式)
- 停止位发送是在读完最后一个字节后,将STP置位,并等待STP清零
- 停止位丢失的时候,STP被DSP28335正常清零了,并且STR.SCD也置位了
- 丢失停止位的时候抓波形发现DSP28335没有发送NACK信号
- 停止位丢失的时候尝试了将SDA配置成GPIO,发现SDA可以拉高,代表从设备没有拉死总线
查看了手册发现NACK发送有3种方法,1.NACKMOD置1;2.产生STOP条件................................. 我想问一下是不是必须使用NACKMOD,同时STOP清零是不是不一定代表在总线上发出了停止位?