Python 如何正确删除Beaglebone black中的中断回调
像这样为gpio引脚P9_24添加中断回调Python 如何正确删除Beaglebone black中的中断回调,python,segmentation-fault,interrupt,beagleboneblack,gpio,Python,Segmentation Fault,Interrupt,Beagleboneblack,Gpio,像这样为gpio引脚P9_24添加中断回调 class Birdemke: ... def __init__(self): #initializatioin of variables ... self.count = 0 def startReadingValue(self): self.count = 0 Gpio.ad
class Birdemke:
...
def __init__(self):
#initializatioin of variables
...
self.count = 0
def startReadingValue(self):
self.count = 0
Gpio.add_event_detect("P9_24", Gpio.RISING, self.readValueFromSensor, 0)
def pauseReadingValue(self):
Gpio.remove_event_detect("P9_24")
def readValueFromSensor(self):
self.count += 1
#reads value from i2c
...
正在使用瓶子从服务器调用这个Birdemke类。调用
startReadingValue()
进行添加,调用pauseReadingValue()
使程序对上升沿无响应。当删除事件检测时,有时程序在第self.count+=1行给出AttributeError,该行未定义计数变量,在Gpio处出现分段错误。删除事件检测(“P9\U 24”)
行[在更改self.count的顶部添加行后,如果hasattr(self,'count')
] 您是否可能只需要在构造函数中初始化self.count
,而不是startReadingLines
?另外,readValueFromSensor
没有使用实例参数,因此self
会在出现AttributeError
之前给出一个NameError
。您可能想将您的帖子改写为一个更具体的问题。不过,我将代码更改为正确的形式,实际上,当问这个问题时,我输入了错误。在我的源代码中,就是你说的那样。谢谢。嗨,笔名。我不想在这里发布这么多行代码。若你们建议解决方法,我可以试试,然后告诉你们结果。谢谢