0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

只需5步,教你添加GPIO按键——飞凌教程

飞凌嵌入式 2022-10-17 14:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文将为大家介绍如何在飞凌OKT507-C开发板上添加两个GPIO按键,希望能够对各位工程师有所帮助,本文章以PE5、PE6两个引脚为例。话不多说,下面我们进入主题。

一、GPIO按键添加方法

1. 添加内核配置

Linux内核源代码中集成了很多功能,一般的用户只会用到其中的部分功能。用户从中挑选自己需要的功能,这就叫内核配置。下面我们开始进行配置。

注意:

(1)在进行配置前,需要对

OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/configs/sun50iw9p1smp_longan_dcfconfig文件提前做好备份;

(2)以下所有图中的红框为修改后的内容。

vi OKT507-linux-sdk/kernel/linux-4.9/.config

pYYBAGNM0lyAC3miAAAeAmBgCG8226.png

2. 添加key节点

添加结点需要我们到设备树中进行添加,设备树是一个描述硬件的数据结构,甚至你可以将其看成一个大结构体(这个结构体就是平台,成员就是具体的设备),将硬件的配置从linux内核的源码中提取出来。

下面打开我们的T507设备树文件,如下:

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

pYYBAGNM0lyAIeRQAAArPkS26ww202.png

其中按键键值设置如下。

poYBAGNM0luAS-uoAAAVUZbCktg004.png

相关键值可通过查看input-event-codes.h文件确定。

vi OKT507-linux-sdk/kernel/linux-4.9/include/uapi/linux/input-event-codes.h

poYBAGNM0lyAM6_sAAAVFykAKbM456.pngpoYBAGNM0lyAfkhtAAAQAstjo_Q043.png

3. 添加引脚定义

添加引脚定义需要用到pinctrl,下面给大家简单介绍下pinctrl。pinctrl就是系统中pin引脚的控制。

假如在使用到GPIO、I2C等功能时,若按引脚逐一地去找对应的寄存器进行配置非常浪费时间和精力,所以内核引入了pinctrl子系统,把引脚的复用和配置抽象出来,只需要芯片厂商把自家芯片的支持进去,就可以很方便的配置引脚。

下面打开我们的pinctrl文件,如下:

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi

pYYBAGNM0lyAT-iKAAARYiQfzAU649.png

4. 关闭冲突功能

因为有些功能结点使用的引脚与我们这次复用的引脚发生冲突,会发生引脚不生效的错误,所以我们一定要检查好,然后将其关闭。

如下打开设备树文件:

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

poYBAGNM0lyAG6cUAABF-VcBCW0676.pngpoYBAGNM0lyAbBcHAAAVQURMk_0614.png

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi

注意:

因摄像头csi复用的引脚与我们这里的冲突,虽然前面将状态disabled了,pinctrl这里也有可能会造成冲突,为了避免不必要的麻烦,我们也将这里注释掉。

pYYBAGNM0l2AdbvXAABc9HA3nkM580.png

5. 驱动修改

gpio-keys是基于input子系统实现的一个通用按键驱动,该驱动基于platform_driver架构,实现了驱动和设备分离,符合Linux设备驱动模型的思想,也符合linux驱动实现模型,即driver和device分离模型。

一般按键驱动,都是基于gpio-keys进行开发的。驱动文件如下:

vi OKT507-linux-sdk/kernel/linux-4.9/drivers/input/keyboard/gpio_keys.c

poYBAGNM0l2AE53yAAAUNSwqy5U695.pngpoYBAGNM0l2AF8SFAAAetbXvkoE328.pngpYYBAGNM0l2AE59wAAArlZ50Jtc681.pngpoYBAGNM0l2AQw80AAAsch6Xa6M661.pngpYYBAGNM0l2AKIvbAAAkauofL_s931.png

二、测试方法

终端窗口输入evtest,选择 7。

pYYBAGNM0l2AEU48AABWTXP8OBw298.png

从上图红框可以看出,通过evtest测试工具将内核设备读取并打印设备描述的事件,到这里,GPIO按键就做完了,可以用它来实现很多的功能,比如说按一下切换灯的状态,蜂鸣器响等。

当然不只是这些啦,我们还可以利用它去实现很多其他功能,欢迎各位聪明的工程师小伙伴自行发挥!

以上就是小编为大家带来的在飞凌OKT507-C开发板上添加GPIO按键的全过程。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GPIO
    +关注

    关注

    16

    文章

    1313

    浏览量

    55727
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    还在用PDF文档查资料?嵌入式「产品在线文档」让您的开发效率狂飙

    PDF文件定位问题。 嵌入式在线文档通过结构化知识图谱实现\"关键词秒级检索+多维度匹配\"。 使用方式非常简单,只需3: ①用户根据芯片品牌找到自己使用的产品; ②然后按快捷键
    发表于 09-26 08:57

    【作品合集】嵌入式OK527N-C开发板测评

    嵌入式OK527N-C开发板测评作品合集 产品介绍: OK527-C开发板采用核心板+底板分体式设计,共320个引脚,采用4个80Pin板对板连接器的方式将处理器的功能引脚以最便利的方式引出,并
    发表于 09-22 15:54

    嵌入式2026届校园招聘正式启动!

    嵌入式2026届校园招聘正式启动!
    的头像 发表于 09-19 08:03 617次阅读
    <b class='flag-5'>飞</b><b class='flag-5'>凌</b>嵌入式2026届校园招聘正式启动!

    T527N开发板试用】T527N开发板开箱评测

    很高兴收到嵌入式申请的T527N开发板,板子的正反面如下图所示: 可以看到,板子上面的资源非常的丰富,有CAN,485, SIM卡槽,4G模块,WIFI/Bluetooth,
    发表于 07-04 11:43

    AS32X601驱动系列教程 GPIO_按键检测详解

    在嵌入式系统开发中,GPIO(通用输入输出端口)是实现硬件与软件交互的关键组件。本节主要利用的时GPIO的输入采集功能,本节的主要功能为,读取板载按键,当按键按下时,对应led亮起,抬
    的头像 发表于 05-23 16:44 645次阅读
    AS32X601驱动系列教程 <b class='flag-5'>GPIO</b>_<b class='flag-5'>按键</b>检测详解

    「2025恩智浦创新技术峰会」嵌入式亮相上海首站

    2025年5月14日,【2025年恩智浦创新技术峰会】首站登陆上海,嵌入式作为恩智浦(NXP)金牌合作伙伴受邀参会,聚焦“工业与物联网”领域,携多款边缘侧AI核心板、开发板以及动态演示方案亮相
    的头像 发表于 05-15 13:38 1059次阅读
    「2025恩智浦创新技术峰会」<b class='flag-5'>飞</b><b class='flag-5'>凌</b>嵌入式亮相上海首站

    【迅为电子】一步步教你完成iTOP-RK3568 EDP屏幕适配

    【迅为电子】一步步教你完成iTOP-RK3568 EDP屏幕适配
    的头像 发表于 04-23 15:08 1622次阅读
    【迅为电子】一<b class='flag-5'>步步</b><b class='flag-5'>教你</b>完成iTOP-RK3568 EDP屏幕适配

    基于小派RK2206开发板:OpenHarmony如何使用IoT接口控制GPIO中断

    1、实验简介本实验将演示如何在小派-RK2206开发板上使用IOT库的GPIO中断模式,进行GPIO编程开发。例程将创建一个任务,通过配置GPIO引脚为中断模式,实现
    的头像 发表于 04-21 10:39 892次阅读
    基于小<b class='flag-5'>凌</b>派RK2206开发板:OpenHarmony如何使用IoT接口控制<b class='flag-5'>GPIO</b>中断

    嵌入式学习-嵌入式ElfBoard ELF 1板卡-input子系统之基于input子系统的按键驱动

    复用表格,可以得到K2由GPIO5_2控制,所以我们需要配置GPIO5_2引脚为输入,而且能够在用户空间能够获取按键事件。(二)在设备树arch/arm/boot/dts
    发表于 04-16 10:57

    嵌入式ElfBoard ELF 1板卡-input子系统之基于input子系统的按键驱动

    复用表格,可以得到K2由GPIO5_2控制,所以我们需要配置GPIO5_2引脚为输入,而且能够在用户空间能够获取按键事件。(二)在设备树arch/arm/boot/dts
    发表于 04-15 10:58

    基于小派RK2206开发板:OpenHarmony如何使用IoT接口控制GPIO外设

    1、案例简介本案例主要是如何在小派-RK2206开发板上使用IOT库的GPIO接口,进行GPIO编程开发。例程将创建一个任务,通过配置GPIO引脚,实现
    的头像 发表于 04-11 15:36 1614次阅读
    基于小<b class='flag-5'>凌</b>派RK2206开发板:OpenHarmony如何使用IoT接口控制<b class='flag-5'>GPIO</b>外设

    嵌入式荣获瑞芯微2024年度优秀合作奖

    嵌入式荣获瑞芯微“2024 年度优秀合作奖”,这一荣誉不仅是对嵌入式过去一年与瑞芯微紧密合作的高度认可,也为未来的合作注入了新动力。
    的头像 发表于 02-21 10:53 1261次阅读
    <b class='flag-5'>飞</b><b class='flag-5'>凌</b>嵌入式荣获瑞芯微2024年度优秀合作奖

    嵌入式ElfBoard ELF 1板卡-开发板适配之按键

    在开发板上有三个用户按键,K1,K2,K3,Linux系统中也集成了gpio-keys驱动,依照上一节中的步骤,在设备树中进行按键设备配置。硬件原理IOMUX配置从上图可以看出GPIO5
    发表于 02-06 10:03

    嵌入式ElfBoard ELF 1板卡-开发板适配之按键

    在开发板上有三个用户按键,K1,K2,K3,Linux系统中也集成了gpio-keys驱动,依照上一节中的步骤,在设备树中进行按键设备配置。硬件原理IOMUX配置从上图可以看出GPIO5
    发表于 01-24 09:32

    嵌入式2024年度盘点】乘风破浪,奋力前行

    2024年即将落下帷幕,回首这一年,嵌入式乘风破浪,奋力前行,创造了发展新篇章,站在2025年的开端,让我们重温嵌入式2024年的年度大事。一、企业实力,稳步攀升国家级荣誉——
    的头像 发表于 01-04 13:22 1383次阅读
    【<b class='flag-5'>飞</b><b class='flag-5'>凌</b>嵌入式2024年度盘点】乘风破浪,奋力前行