在GPIO中断上从/读取SPI失败,错误为:[Errno 9]错误的文件描述

2024-05-23 19:40:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行一个NFC阅读器,在我的Raspberry Pi上有一个中断pin,我编写了一个脚本使它运行。到目前为止,它工作得很好,但在某些情况下SPI-xfer会崩溃,出现OSError: [Errno 9] Bad file descriptor

当我收到GPIO引脚的中断时,整个SPI部分都发生了-这可能是个问题吗?我知道代码不应该在中断时做太多,这可能会导致崩溃。你知道吗

这是一个有点太多的代码共享在这里,但我使用PN532芯片与Adafruit库https://github.com/adafruit/Adafruit_Python_PN532-我知道这是不赞成的,但 与C实现的差别非常小。我正在运行pn532.read_passive_target(timeout=0.2)从NFC芯片读取UID并使其扫描NFC卡。你知道吗

除非我经常这样做,否则效果很好。为了测试,我拿着卡片对着读卡器一遍又一遍,没有任何延迟。在大约5-10次崩溃之后。你知道吗

你知道怎么解决吗?对错误的描述很抱歉。你知道吗


Tags: 代码spiadafruit脚本pinpi情况nfc
1条回答
网友
1楼 · 发布于 2024-05-23 19:40:10

我重构了代码,在中断过程中不做任何SPI工作。中断现在只处理状态而不处理其他事情,然后主线程检查状态并处理它。这样一来,我就不能再重现这个错误了。你知道吗

注意:不要在中断进程回调上使用SPI,而要使用状态机或python调度。你知道吗

相关问题 更多 >