跳转至

CH07 按键输入实验

上一章,我们介绍了 STM32H7 的 IO 口作为输出的使用,这一章,我们将向大家介绍如何使用 STM32H7 的 IO 口作为输入用。在本章中,我们将利用板载的 4 个按键,来控制板载的两个 LED 的亮灭。通过本章的学习,你将了解到 STM32H7 的 IO 口作为输入口的使用方法。本章分为如下几个小节: 7.1 STM32H7 IO 口简介 7.2 硬件设计 7.3 软件设计 7.4 下载验证 7.5 STM32CubeMX 配置 IO 口输出

7.1 STM32H7 IO 口简介

STM32H7 的 IO 口在上一章已经有了比较详细的介绍,这里我们不再多说。STM32H7 的IO 口做输入使用的时候,是通过调用函数 HAL_GPIO_ReadPin ()来读取 IO 口的状态的。了解了这点,就可以开始我们的代码编写了。这一章,我们将通过 ALIENTEK 阿波罗 STM32 开发板上载有的 4 个按钮(KEY_UP、KEY0、KEY1 和 KEY2),来控制板上的 2 个 LED(DS0 和 DS1),其中 KEY_UP 控制 DS0,DS1 互斥点亮;KEY2 控制 DS0,按一次亮,再按一次灭;KEY1 控制 DS1,效果同 KEY2;KEY0 则同时控制 DS0 和 DS1,按一次,他们的状态就翻转一次。

7.2 硬件设计

本实验用到的硬件资源有: 1) 指示灯 DS0、DS1。 2) 4 个按键:KEY0、KEY1、KEY2、和 KEY_UP。 DS0、DS1 和 STM32H743 的连接在上一章已经介绍过了,在阿波罗 STM32 开发板上的按键 KEY0 连接在 PH3 上、KEY1 连接在 PH2 上、KEY2 连接在 PC13 上、KEY_UP 连接在 PA0上。

这里需要注意的是:KEY0、KEY1 和 KEY2 是低电平有效的,而 KEY_UP 是高电平有效的,并且外部都没有上下拉电阻,所以,需要在 STM32H743 内部设置上下拉。

7.3 软件设计

~

7.4 下载验证

~

7.5 STM32CubeMX 配置 IO 口输出

~