[其他ST产品] 基于STM32 i2c从机卡死问题解决

[复制链接]
4175|65
febgxu 发表于 2023-4-18 20:46 | 显示全部楼层
在从机接收数据时,需要检查接收数据寄存器中的数据接收标志位,如果数据接收标志位被置位,则应该立即发送ACK信号,否则可能导致卡死问题。
uptown 发表于 2023-4-18 21:29 | 显示全部楼层
使用I2C软件复位来重置I2C总线,并确保在下次通信之前,清除I2C状态寄存器中的错误标志位。
Stahan 发表于 2023-4-19 23:43 | 显示全部楼层
硬件IIC的问题一直没有解决掉
yszong 发表于 2023-4-22 12:31 | 显示全部楼层
还是用模拟iic比较好
renyaq 发表于 2023-4-22 12:43 | 显示全部楼层
硬件iic好像有点问题
pengf 发表于 2023-4-22 12:44 | 显示全部楼层
在发送start前重新初始化下再看  
renyaq 发表于 2023-4-22 12:46 | 显示全部楼层

stm32的I2C为什么会有bug
supernan 发表于 2023-4-22 12:47 | 显示全部楼层
所以不要用硬件IIC哦。
chenho 发表于 2023-4-22 12:49 | 显示全部楼层
因为是长久以来的问题,也没说得到解决。
chenho 发表于 2023-4-22 12:51 | 显示全部楼层

【clock no stretch mode】这个配置的意思是什么?
chenho 发表于 2023-4-22 12:53 | 显示全部楼层
硬件iic好像有问题
dengdc 发表于 2023-4-22 12:54 | 显示全部楼层
硬件iic的问题一直没解决啊
dengdc 发表于 2023-4-22 12:55 | 显示全部楼层
想用IIC的话,就用软件模拟吧。
heweibig 发表于 2023-4-22 12:57 | 显示全部楼层
确认SCL、SDA和地线的连接是否正确,以及是否存在电气干扰等因素。
guoyt 发表于 2023-4-22 12:59 | 显示全部楼层
ack信号时间很短暂,一旦错过了这个短暂的ACK信号,STM32就挂了。
wangpe 发表于 2023-4-22 13:02 | 显示全部楼层
可以在硬件上增加电源滤波电容、终端电阻等措施,以提高I2C总线的可靠性和稳定性。
jiajs 发表于 2023-4-22 13:03 | 显示全部楼层
在I2C从机代码中实现超时机制,如果主机在一定时间内没有完成ACK信号的发送,从机可以停止当前传输并重新等待新的传输请求。
wangpe 发表于 2023-4-22 13:04 | 显示全部楼层
可以在I2C从机代码中实现适当的错误处理机制,例如使用中断、错误标志位等来监测和处理I2C总线状态错误。
kangzj 发表于 2023-4-22 13:05 | 显示全部楼层

应该说硬件I2C使用起来比较啰嗦,主要是不会用导致的问题。
tian111 发表于 2023-4-22 13:07 | 显示全部楼层
STM32 硬件I2C 到底是不是个坑
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部