gpt4 book ai didi

c - Beaglebone 中的数字输入端口 (GPIO) 流式传输?

转载 作者:行者123 更新时间:2023-11-30 17:08:46 25 4
gpt4 key购买 nike

实际上,我有一个功能可以监控 beaglebone 上的 GPIO。我将该函数设置为当数字输入端口上发生事件(外部中断等)时发送用户信号(SIGUSR1),但该函数必须处于循环中。我可以将该函数插入到线程中或 fork() 中,但我认为这不是一个优雅的解决方案。

我想知道 C 语言中是否存在任何现成的方式/函数/功能,可以将监控设置为在前台运行(更高优先级),而不需要放入循环,例如 setitimer 仅声明一次并运行(持续监控),无需循环。

我不知道 beaglebone/linux 是否可以实现,但对于 PIC,此功能由“流并行端口”(SPP) 调用。

最佳答案

我不知道你如何监控gpio,但要从用户空间使用gpio(参见https://www.kernel.org/doc/Documentation/gpio/sysfs.txt)您可以使用 select 和 poll,以最小超时时间调用它可以在没有循环的情况下工作,或者如果您使用 Qt/gtk,您可以在其中插入 GPIO 检查该框架的事件循环。

如果您只想使用 C,第二种变体是使用 setjmp/longjmp,没有 C++/Boost,

此外,如果您谈到计时器,您可以使用 man 2 Alarm 来实现周期性计时器,

对我来说最简单的方法是使用 pthreads,并设置监视 gpio 最高优先级的线程,以免丢失信息。

关于c - Beaglebone 中的数字输入端口 (GPIO) 流式传输?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33536211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com