liao12338392 发表于 2014-8-3 16:44:48

怎么样设置GPIO为输入值,并读取其状态?

本帖最后由 liao12338392 于 2014-8-3 16:48 编辑

在Ubuntu环境下,文件board-mx6q_sabresd.h文件添加定义如下:
MX6Q_PAD_EIM_D16__GPIO_3_16,
MX6Q_PAD_EIM_D21__GPIO_3_21,

在Ubuntu环境下,文件board-mx6q_sabresd.c文件添加定义如下:
#define SABRESD_GPIO_IN_D16      IMX_GPIO_NR(3,16)
#define SABRESD_GPIO_IN_D21      IMX_GPIO_NR(3,21)

static struct gpio_keys_button sabresd_buttons[] =
{
      GPIO_BUTTON(SABRESD_GPIO_VOL_DOWN,KEY_LEFT, 1, "left",   0, 1),//KEY_HOME
      GPIO_BUTTON(SABRESD_GPIO_VOL_UP,    KEY_RIGHT,   1, "right",   0, 1),
      GPIO_BUTTON(SABRESD_GPIO_POWER,   KEY_POWER,      1, "power",         1, 1),

      GPIO_BUTTON(SABRESD_GPIO_IN_D16,    KEY_D16, 1, "IN_D16",   0, 1),
      GPIO_BUTTON(SABRESD_GPIO_IN_D21,    KEY_D21, 1, "IN_D21",   0, 1),

};

编译时提示
arch/arm/mach-mx6/board-mx6q_sabresd.c:986:2: error: 'KEY_D16' undeclared here (not in a function)
arch/arm/mach-mx6/board-mx6q_sabresd.c:987:2: error: 'KEY_D21' undeclared here (not in a function)


是不是还有什么文件需要修改?怎么读取其输入值?

wbz073 发表于 2014-8-4 09:11:22

你的KEY_D16是从哪里定义的,请再次使用与KEY_POWER同处定义的相关键值

liao12338392 发表于 2014-8-4 14:33:23

KEY_POWER这个键值在哪里定义?

liao12338392 发表于 2014-8-4 14:33:47

wbz073 发表于 2014-8-4 09:11
你的KEY_D16是从哪里定义的,请再次使用与KEY_POWER同处定义的相关键值


KEY_POWER这个键值在哪里定义?

wbz073 发表于 2014-8-4 15:20:20

liao12338392 发表于 2014-8-4 14:33
KEY_POWER这个键值在哪里定义?

include/linux/input.h

liao12338392 发表于 2014-8-4 21:24:51

假设要读取EIM_D16和EIM_D21引脚值,应该怎样设置并读取?试过好像还是有问题,能弄个详细一点的例子和步骤吗

victoire 发表于 2014-8-12 13:49:24

同问,求解

juicy 发表于 2014-8-18 14:09:03

同问,求解
页: [1]
查看完整版本: 怎么样设置GPIO为输入值,并读取其状态?