一些背景知识:
我有一个i2c设备(MCP23017),它有6个交换机连接到它的GPIO端口。MCP23017通过i2c连接到树莓派。
我可以根据需要读取每个开关的状态。
我的问题是关于中断。我使用的是Python的WiringPi2库,它允许我在Python下与MCP23017交互。根据我所做的研究,WiringPiISR库允许运行i2c中断协议,尽管它似乎只在C下(正确地)工作。
我的问题是:有没有在Python下实现i2c中断的简单解决方案?
对于这个特定的项目,我正在考虑放弃使用C语言的Python,但是GUI界面已经写好了(用Python编写),所以我想把它作为最后的选择。
任何指导/输入/评论都将不胜感激!
谢谢!
发布于 2014-11-13 20:03:01
据我所知,WiringPiISR库只允许你将引脚配置为中断并定义其类型(即,基于边沿或基于电平)。由于您正在讨论I2c中断,因此您不可能有I2C中断,因为在这种情况下,您的Rpi作为主设备工作,而其他连接的设备作为从设备工作。因为在I2C中,通信总是由主机发起的,所以从机不能打断你。(至少不是通过I2C通道)
希望能有所帮助。
发布于 2021-05-12 12:26:29
除了I2C线路之外,还有一些设备还具有中断线路。例如,我有一个来自duppa.net的旋转编码器I2C接口板,它有5个引脚- SDA、SCL、+、-和中断。
随附的python库将Raspberry Pi GPIO 4行配置为输入边缘触发中断,并设置回调。在中断线路发生变化(例如旋转编码器旋转)时,中断处理程序通过I2C读取状态寄存器并调用适当的回调。
因此,在I2C执行将主机从轮询总线中解放出来的常规任务的情况下,这完全是传统的中断用法。
https://stackoverflow.com/questions/26899161
复制相似问题