首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在GPIO中断上写入/读取SPI失败,出现OSError:[Errno 9]错误的文件描述符

在GPIO中断上写入/读取SPI失败,出现OSError:[Errno 9]错误的文件描述符
EN

Stack Overflow用户
提问于 2019-11-04 22:08:54
回答 1查看 359关注 0票数 0

我正在运行一个NFC阅读器,在我的树莓派上有一个中断引脚,我写了一个脚本让它运行。到目前为止,它工作得很好,但在某些情况下,SPI会因OSError: [Errno 9] Bad file descriptor而崩溃

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

这里分享的代码有点太多了,但我使用的是带有Adafruit Library https://github.com/adafruit/Adafruit_Python_PN532的PN532芯片-我知道它已经被弃用了,但与C实现的区别非常小。我正在运行pn532.read_passive_target(timeout=0.2)从该NFC芯片读取UID,并使其扫描NFC卡。

它工作得很好,除非我经常这样做。为了测试,我一次又一次地拿着读卡器,没有任何延迟。大约5-10次之后,它就崩溃了。

有什么办法解决这个问题吗?对于错误的糟糕描述,我很抱歉。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-05 23:02:36

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58695138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档