gpt4 book ai didi

c++ - 使用开发适配器重置卡住的 I2C 总线

转载 作者:太空狗 更新时间:2023-10-29 22:56:09 27 4
gpt4 key购买 nike

我正在使用控创嵌入式计算机通过 I2C 与 ST 微 Controller 通信。我正在使用开发适配器与 I2C 接口(interface),使用描述的简单 read() 和 write() 函数 here .

问题是,如果从机出于某种原因未能确认一个字节,I2C 总线就会卡住,主机无法发送或接收任何信息(即使程序关闭并重新启动!)。目前我可以重置 I2C 总线的唯一方法是重启,这远非理想。

有人对我能做什么有什么建议吗?有没有一种方法可以使用其他方法通过 I2C 进行通信,这些方法可以在不卡住的情况下优雅地处理通信失败?或者有什么方法可以重置 I2C?

最佳答案

最近的内核支持驱动程序级别的 I2C 恢复(请参阅 5f9296ba21b3)并且应该自动触发此恢复。您可能必须为您的内核实现恢复方法和/或将所需的 scl/sda gpios 定义添加到设备树。

关于c++ - 使用开发适配器重置卡住的 I2C 总线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48870920/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com