admin 管理员组文章数量: 1184232
一、硬件介绍
1.1 按键硬件结构
- 按键数量与功能:共 3 个按键(两红一黄),功能分工明确
- 左侧(on/off):低功耗控制按钮
- 中间(reset):系统复位按钮
- 右侧(KEY0):用户独立控制的试验按键<本次实验主要使用KEY0>
- 电平逻辑:开关断开时,引脚为高电平;开关按下时,引脚为低电平(关键逻辑,代码设计核心依据)
1.2 核心引脚与手册参考
| 硬件模块 | 参考文档 | 核心章节 | 说明 |
|---|---|---|---|
| 引脚复用 | 《IMX6ULL 参考手册.pdf》 | Chapter 32(IOMUX Controller) | 配置 GPIO 功能复用 |
| GPIO 控制 | 《IMX6ULL 参考手册.pdf》 | Chapter 28(General Purpose Input/Output) | GPIO 方向、数据读取 |
| 时钟控制 | 《IMX6ULL 参考手册.pdf》 | Chapter 18(Clock Controller Module) | 使能 GPIO 时钟 |
| 中断控制器 | 《ARM Generic Interrupt Controller V2.0.pdf》 | 第 23 页 | GIC 中断分发与 CPU 接口 |
| 内核控制 | 《Cortex-A7 Technical Reference Manual.pdf》 | Chapter 4(System Control) | 协处理器 CP15 配置 |
二、轮询方式按键实现
2.1 轮询方式原理
通过循环读取 GPIO 引脚电平判断按键状态,适用于业务逻辑简单、无实时性要求的场景。但当主程序存在大量耗时业务时,会出现按键漏检问题(如汽车刹车、工业急停等实时场景禁用)。
2.2 代码实现
步骤 1:初始化配置(4 大核心模块)
(1)引脚复用配置(IOMUXC)
- 功能:将
UART1_CTS_B引脚复用为GPIO1_IO18 - 关键寄存器:
IOMUXC_SW_MUX_CTL_PAD_UART1_CTS_B(低 4 位控制复用模式)
(2)电气特性配置(PAD_CTL)
- 功能:配置引脚的上拉 / 下拉、速度、驱动能力等,确保电平稳定
- 关键寄存器:
IOMUXC_SW_PAD_CTL_PAD_UART1_CTS_B
参数拆解(二进制对应位):
HYS=0:禁用输入滞回(无需防抖时关闭)PUS=11:22KΩ 上拉(匹配 “断开高电平” 硬件逻辑)<与原理图中KEY0的上拉电阻并联后阻止小于10Ω>PUE=1:选择上拉模式(而非保持模式)PKE=1:使能上拉 / 保持功能ODE=0:禁用漏极开漏(GPIO 输入模式无需开漏)SPEED=10:中等速度(100MHz)DSE=000:禁用输出驱动(输入模式无需驱动)SRE=0:慢压摆率(减少信号干扰)
(3)GPIO 方向配置(GDIR)
- 功能:设置 GPIO 为输入模式(读取按键电平)
- 关键寄存器:
GPIO1->GDIR(bit18 对应 GPIO1_IO18,0 = 输入,1 = 输出)
(4)GPIO 时钟使能(CCM)
- 功能:使能 GPIO1 组时钟(默认时钟关闭,不使能则 GPIO 无响应)
- 关键寄存器:
CCM_CCGR1(GPIO1 组共用该时钟门控)
mrc与mcr命令
| 对比 | MRC(Move to ARM Register from Coprocessor)<“读”> | MCR(Move from ARM Register to Coprocessor)<“写”> |
|---|---|---|
| 核心功能 | 将协处理器寄存器的数据读取到ARM 核心通用寄存器 | 将ARM 核心通用寄存器的数据写入到协处理器寄存器 |
| 数据流向 | 协处理器寄存器 → ARM 核心寄存器(读操作) | ARM 核心寄存器 → 协处理器寄存器(写操作) |
| 指令格式(ARM 汇编) | MRC{<cond>} <coproc>, <opcode1>, <Rd>, <Crn>, <Crm>{, <opcode2>} |
MCR{<cond>} <coproc>, <opcode1>, <Rd>, <Crn>, <Crm>{, <opcode2>} |
| 关键字段含义 | 各字段功能与 MCR 完全一致,仅数据流向相反: |
版权声明:本文标题:I.MX6ULL按键实现(轮询及中断)及工程优化 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1766218033a3444993.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论