我遇到了困扰我好几天的事情,所以我在 imx6sx cortex m4 端工作,我有一个传感器连接到其中一个 i2c 总线,传感器设置为在 INT1 上准备好数据,它连接到来自 MCU 的 gpios 之一。启动后,我配置传感器,使其输出数据就绪中断。请注意,i2c 也可以在中断模式下工作,因此如果我在数据就绪线被断言时尝试读取传感器,我必须在 GPIO INT 处理程序中等待,直到 i2c 传输完成才能获得另一个数据就绪 int 等等上。
我的问题是我不想在 GPIO INT 处理程序中等待直到 i2c 传输完成,这就是为什么我也让 i2c 中断,但如果我不在 GPIO Int 处理程序中等待,有些事情发生在 i2c 上,因为传感器不确认传输,所以我没有收到其他数据就绪中断。
如果您知道可能出了什么问题,请提供帮助,而且 i2c 总线中断的优先级高于 GPIO 中断,不幸的是我不能使用调试器进行调试,只能使用老式的方式,printfs in控制台
谢谢
最佳答案
您可以使用 INT1 触发优先级较低的软件中断来处理 i2c,然后退出以释放中断。
考虑使用 RTOS 为您管理它。
关于c - 来自 gpio int 处理程序的 i2c 传输在 imx6sx cortex m4 侧失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35923277/