BBB:GPIO信号不会保持高电平

时间:2016-06-07 11:32:48

标签: beagleboneblack gpio

所以我有一个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

1 个答案:

答案 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);