慷慨歌燕市,从容作楚囚。
引刀成一快,不负少年头。
文章目录
一、实验目标与原理图分析
本节实验目标
- 中断方式实现按键操作
- 采用Linux内核定时器消抖
- 应用程序读取按键值并通过终端打印出来!
IMX6ULL-qemu开发板通过SNVS_TAMPER1 引脚复用为GPIO5_IO01来控制按键,原理图如下图所示。

二、编写程序
在 Linux 下编写按键驱动之前,我们先来理一下需要做的工作:
- ①、在设备树中添加 SNVS_TAMPER1 引脚的 pinctrl 信息。
- ②、在设备树中创建按键节点,在按键节点中加入 GPIO 信息。
- ③、编写驱动程序和测试 APP
2.1 修改、编译、覆盖设备树文件
2.1.1 添加 pinctrl 节点
添加按键节点之前,需要先确定GPIO5_IO01的父节点,即确定其处于那个复用控制器下。
- 方法一:通过参考手册获取
打开IMX6ULL的参考手册,全局搜索GPIO5_IO01,可以看到寄存器IOMUXC_SNVS_SW_MUX
本文详细介绍了在嵌入式Linux系统中,如何编写和实现按键中断驱动程序。首先,分析实验目标和原理图,利用SNVS_TAMPER1引脚作为GPIO5_IO01控制按键。接着,逐步讲解如何修改、编译和覆盖设备树文件,添加pinctrl节点和按键设备节点,并检查PIN避免冲突。最后,介绍了驱动程序和应用程序的编写,以及如何运行程序,实现按键操作的中断处理和终端打印。
订阅专栏 解锁全文
768

被折叠的 条评论
为什么被折叠?



