Microchip
直播中

李滢芝

8年用户 229经验值
私信 关注
[问答]

启动与PIC32MX570F512L的I2C通信时有些东西不起作用怎么办

大家好,当我试图启动与PIC32MX570F512L的I2C通信时,有些东西不起作用,代码如下:调试代码,可以看到设置了SEN位,SCL和SDA都被清除以断言启动条件。此后,没有设置I2C1STATBITS S,并且不调用中断。代码继续执行,在第一个字节的确认过程中停止。问题是什么?谢谢你的支持

回帖(14)

李缬呓

2020-5-8 11:58:12
这里有几个潜在的问题:1)您的代码是写成阻塞的,例如,您正在等待开始条件完成。如果您打算等待,就不需要I2C中断——禁用它们以避免问题。2)在ISR内部,您正在使用RMW序列操纵CPU寄存器(IFS1)中的位字段——这是糟糕的形式,在某些情况下可能给您带来麻烦。我建议将其更改为IFS1CLR=_IFS1_I2C1MIF_MASK;3)在第一个字节的ack期间停止意味着从服务器已经NACKED事务(没有响应)——可能是错误的地址或其他错误。
举报

张娜

2020-5-8 12:12:34
相关:HTTP://www. McCHIP.COM/FUMMS/M916081.ASPX
举报

陈俊

2020-5-8 12:20:38
嗨,艾登,谢谢你精心的回答。即使代码不在ISR中,也要启动条件。我的问题是关于ISR的工作(无论如何它不工作)。关于确认,问题是主机不同时发送scl和sda。我解释得更好,代码在管脚上似乎被锁定在0V时继续进行。在这种情况下,不能断言确认,因为没有从主设备发送时钟信号。在我看来,在启动条件期间发生了一些错误,因为S位没有设置(如com中所述)。PANTENT数据表
举报

丁亚念

2020-5-8 12:30:22
您确定SDA和SCL引脚不是模拟模式吗?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分