【发布时间】:2015-02-22 00:10:23
【问题描述】:
我需要一个可以写入 gpio 的简单程序。我在任何地方都找不到。 mmra 文档中的示例不起作用。我选择 gpio14 是因为使用系统调用写入此引脚的 Sprakfun 示例工作得很好。但是我的程序不起作用。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mraa.h>
#include <math.h>
#include <mraa/gpio.h>
int main(int argc, char **argv)
{
mraa_gpio_context gpio;
gpio = mraa_gpio_init(14); <--- to get gpio14 to toggle change this to 36
mraa_gpio_dir(gpio, MRAA_GPIO_OUT);
int value = 0;
for (;;) {
if(value == 0)value = 1;
else value = 0;
mraa_gpio_write(gpio,value);
printf("output is %d\n",value);
sleep(1);
}
mraa_gpio_close(gpio);
return 0;
}
循环运行并打印输出为 1,然后输出为 0。我在引脚上有一个示波器,它保持低电平。
使用this Sparkfun 教程,我可以将引脚移高,这样我就知道我的设置是正确的。如果有人能给我一个适用于所有包含的代码示例,那将非常有帮助。
【问题讨论】:
-
什么?你有一个有效的例子吗?为什么不能逐行将一种转换成另一种,从而找出问题所在?
-
@MartinJames:这个“示例”实际上是使用 sysfs 访问 GPIO,只是通过 shell。他需要用 C 编写的示例
-
只需谷歌搜索数据表并按照它说的去做
-
@Simon:数据表与此问题无关。他说通过 sysfs 访问时 GPIO 可以工作。表示 GPIO 驱动程序工作正常。他对“mraa/gpio.h”框架有疑问。
-
他可能无法设置 gpio,在数据表中您会找到如何设置。这就是我会做的。
标签: c gpio intel-edison