I.MX6U 裸机开发10.GPIO按键实验
一、原理图
本项目实现轮询KEY0的状态值,并根据按键状态控制LED0和BEEP。
1. 底板上按键的原理图
实体图如下:
2. 核心板上的引脚
原理图如下所示:
可以看到KEY0 接到 UART1_CTS 上。
默认情况下,KEY0 为高,当按下KEY0 时, UART1_CTS 拉为低。
3. 开发步骤
- 设置 UART1_CTS 复用为 GPIO
- 设置 UART1_CTS 的电气属性
- 配置 UART1_CTS 为输入模式
- 读取 UART1_CTS 的值,即按键值
二、程序编写
1. 创建工程文件夹
从上章直接复制项目,将 Makefile 里的项目名称改成 key 。
在apps下新增 key.c和 key.h 文件。
2. key文件
key.h
//
// Created by Xundh on 2024/11/15.
//
#ifndef LEARN_I_MX6U_KEY_H
#include "fsl_common.h"
#include "fsl_iomuxc.h"
#include "MCIMX6Y2.h"
#define KEY0 0
#define KEY1 1
void key_init(void);
int key_get_value(int key);
#define LEARN_I_MX6U_KEY_H
#endif //LEARN_I_MX6U_KEY_H
key.c
key_init 函数设置引脚的复用、电气属性,首先在 fsl_iomuxc.h 里找到 UART1_CTS 寄存器:
可以看到,UART1_CTS_B复用为 GPIO1_IO18。
代码如下: