完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
编辑:这个问题又回来了!嗨,大家看我的I2C功能有点帮助。几个月前,我编写了它们来与我的PIC24/32项目一起使用(因为PIC24F和PIC32MX上的I2C模块非常相似),它们大部分都工作得很好。这个问题早些时候发生了,当我要将一些捕获发布到这里时,当然,它又开始工作了。我使用的是带有XC32 v1.40工具链的PIC32MX564F128H。我看到的问题是在执行I2C接收时发生的。我发送与我交谈的设备的地址(0x7C)和寄存器(0x28)(在本例中是Sem.SX1509B矩阵键盘引擎),断言I2C重新启动条件,发送设置为读取的最后一位的地址,然后读取字节。然后发生的是代码被锁定在等待RBF位走高。PIC继续在SCL上保持一个无限的时钟。这只发生在与这个设备上的寄存器对话时,我可以毫无问题地读取其他寄存器。我读取的单个字节I2C的代码如下:[EDIT]问题在几个小时后又出现了。下面是实际问题的屏幕截图(I2C_FAIL.png),在等待RBF变高的时候,我的I2CSTAT寄存器读取0x0010。意思是检测到的最后一个条件是停止(没有多大意义?)令人困惑的是,I2C4RCV中有数据。I2C4RCV= 0xFe。既然I2C4RCV有数据,该模块不应该只带来RBF高吗?我还在这个相同的设备查询寄存器0x27之前执行一次读取,它工作得很好(I2C_OK.png)[END EDIT]预先感谢您的任何可能的见解。如果需要,我可以张贴更多的代码,但是其他的一切看起来都很好。
|
|
相关推荐
1个回答
|
|
好吧,所以我试着编辑我的帖子,但是论坛似乎不想让我。这个问题又回来了。逻辑分析器捕获附加到此帖子(I2C_FAIL.png)以及上面的帖子(试图内联图片给我一个访问拒绝错误)I2C4STAT读取0x0010(最后一个条件停止?)I2C4RCV读取0xFE,所以它有数据,但不会因为任何原因提高RBF。我在其他地方进行I2C,甚至对这个设备,都工作得很好。就在这个问题发生之前,我读了0x27寄存器(见I2CYOK.PNG)。
|
|
|
|
只有小组成员才能发言,加入小组>>
5171 浏览 9 评论
2001 浏览 8 评论
1931 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3176 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2228 浏览 5 评论
737浏览 1评论
622浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
509浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
635浏览 0评论
533浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 03:03 , Processed in 1.331787 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号