[MM32软件]

硬件I2C读取24C16地址为0x5xx时死机的问题

[复制链接]
1913|3
手机看帖
扫描二维码
随时随地手机跟帖
ZG11211|  楼主 | 2024-12-7 12:37 | 显示全部楼层 |阅读模式
LibSamples_MM32F0140_V1.3.7\Samples\LibSamples\I2C\I2C_Master_EEPROM_Polling;
将其部分函数修改后用来读写24C16时,发现只要高位是5时,读取就会卡死,比如0x550,用逻辑分析仪抓取发送数据为0xAA,0x50,0xAB,最后这个读命令字节发出后24C16应答了ACK,之后SCL一直保持低电平卡死;写入正常,用IO模拟读写正常,我没有开发板,用的PA11,PA12,厂商FAE或者网友要是有时间可以帮忙测试一下,看是不是我自己的问题。
提示,我在初始化时将I2C1->SAR的默认值0x55修改后就不会卡死。

使用特权

评论回复
AloneKaven| | 2024-12-10 16:26 | 显示全部楼层
地址是0x550?

使用特权

评论回复
AloneKaven| | 2024-12-10 16:26 | 显示全部楼层
iic地址有这么长吗

使用特权

评论回复
ZG11211|  楼主 | 2024-12-12 20:49 | 显示全部楼层
24C16最大地址7FF;
21877675ada9dda6aa.png
读550时,从机ACK应答后,时钟被单片机一直拉低进入死循环;
90389675adb11e28a3.png
读622地址,从机ACK应答后,单片机可以正常发送读时钟信号,可以读取到数据。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

1118

帖子

8

粉丝