[技术问题解答] 怎么样设置GPIO为输入值,并按键读取其状态?

[复制链接]
 楼主| liao12338392 发表于 2014-8-3 16:55 | 显示全部楼层 |阅读模式
在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)


是不是还有什么文件需要修改?怎么读取其输入值?
FSL_TICS_Jeremy 发表于 2014-8-4 09:51 | 显示全部楼层
你好,楼主!
我会见你的问题转给i.MX工程师,他稍后会回复你的。
jd972594 发表于 2014-8-12 09:03 | 显示全部楼层
这问题看似很简单,可惜没有玩过i.MX帮不上你
网上搜不到相关例程吗?
victoire 发表于 2014-8-12 15:23 | 显示全部楼层
按键值定义在内核 include/linux/input.h之中
FSL_TICS_Rita 发表于 2014-8-15 16:06 | 显示全部楼层
楼主你好,关于GPIO的配置你可以参考一下帖子:http://bbs.21ic.com/icview-687760-1-1.html
bestray 发表于 2014-9-3 09:19 | 显示全部楼层
4楼正解!~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

18

帖子

0

粉丝

1

主题

18

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部