嗨,我需要一些帮助。我正在ARM中制作一个c++嵌入式应用程序。我需要获得一个按钮事件,我一直在互联网上寻找,发现最好的方法是打断时间。我知道我可以通过终端设置一个引脚,例如“回声升高> /sys/.../gpio/gpio81/edge”。但是我需要知道如何在发生问题时从C++应用程序中获取中断,我只需要一些示例,因为我不知道是否必须使用一些特殊的库。

谢谢大家,我希望有人能帮助我。

最佳答案

手动“机械”按钮需要去抖。那,以及按钮不需要高I / O性能的事实,意味着GPIO中断是一个尴尬的过大杀伤力。当然可以做到,但是用定时器中断查询GPIO端口,存储输入状态并与先前的状态进行比较更加容易和安全。如果GPIO线的状态更改了足够数量的样本,则您将具有按钮事件并可以对其进行操作。

如果您使用的是任务操作系统,则可以挂钩现有的计时器中断-仅有少数几个指令可以处理GPIO轮询,因此您应该不会看到任何明显的性能下降。如果确定已按下/释放按钮,则可以发出信号量,以便等待线程可以快速处理该事件。

关于c++ - 使用C++处理GPIO按钮事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23823279/

10-16 03:23