所以我有一个BeagleBone黑板,我希望能够将一个GPIO
引脚从low
值设置为high
值。
为实现这一目标,我使用BlackLib
1库(一个C ++库,提供对所有beaglebone引脚的一般访问权限)。
该库有一个名为BlackGPIO
的类,它提供了我想要的功能。
BlackLib::BlackGPIO NSLP_pin(BlackLib::GPIO_61, BlackLib::output, BlackLib::SecureMode);
auto NSLP_pinMode = NSLP_pin.getValue();
NSLP_pin.setValue(BlackLib::low);
我希望这行代码会将信号从low
值设置为high
值(默认情况下信号为low
)。
问题在于信号仅high
大约~10ms
(在范围内测量),然后再次low
。
我做错了什么?
如何将某个GPIO
引脚设置为某个值,并保持不变直到我更改它?
[1] link
答案 0 :(得分:0)
link指定从命令行导出BBB引脚并将其设置为HIGH或LOW。您可以开发一个小的C ++函数来将这些命令发送到内核以导出,打开/关闭BBB引脚。我在我的C应用程序中使用相同的方法,它完美无缺。
C中的示例代码段以启用引脚:
FILE *GPIO;
GPIO = fopen("/sys/class/gpio/gpio65/direction", "w");
fseek(GPIO,0,SEEK_SET);
fprintf(GPIO,"61");
fflush(GPIO);
fclose(GPIO);