【发布时间】:2013-02-28 01:55:27
【问题描述】:
我正在用 beaglebone 做一些 GPIO,目前在我的代码中有这个:
#include <linux/gpio.h> //for GPIO
char label[] = "sys/kernel/debug/gpio";
struct gpio xx[] = {
{ gpio1, GPIOF_DIR_OUT|GPIOF_INIT_LOW, label },
{ gpio2, GPIOF_DIR_OUT|GPIOF_INIT_LOW, label },
{ gpio3, GPIOF_DIR_OUT|GPIOF_INIT_LOW, label },
{ gpio4, GPIOF_DIR_OUT|GPIOF_INIT_LOW, label },
{ gpio5, GPIOF_DIR_OUT|GPIOF_INIT_LOW, label },
{ gpio6, GPIOF_DIR_OUT|GPIOF_INIT_LOW, label },
{ gpio7, GPIOF_DIR_OUT|GPIOF_INIT_LOW, label },
{ gpio8, GPIOF_DIR_OUT|GPIOF_INIT_LOW, label },
{ gpio9, GPIOF_DIR_OUT|GPIOF_INIT_LOW, label },
{ gpio10, GPIOF_DIR_OUT|GPIOF_INIT_HIGH, label },
};
其中 gpio# 都定义为整数。 GPIOF_DIR_OUT 和 GPIOF_DIR_LOW 是“linux/gpio.h”中的函数。
结构没有在函数内部声明。我相信这是我的问题,但我不确定它是如何被宣布为错误的。我已经看到了其他线程,但对我的问题没有任何帮助。我认为问题在于我正在从我的结构中调用一个函数。如果有人可以验证或帮助我解决这个问题,那就太好了。
【问题讨论】:
-
您的代码没有调用任何函数,请尝试使用
GPIOF_DIR_OUT()。 -
struct gpio 的定义是什么?另外我假设 gpio1~10 和 label 都是宏或枚举。它们不能是变量。
标签: c struct c-preprocessor gpio