本文详细说明STM32f030_KEY的配置,GPIO相关寄存器的配置和功能的说明在上一节STM32F030_LED的文档已经说明。
1、概述
-STM32f030r8开发板有四个按键:按键1、按键2、复位键、唤醒键
-STM32f030r8的按键1由PF6复用,按键2由PF7复用
-按键按下相应管教产生低电平
2、准备工作
建议准备F0的参考手册和数据手册,方便查阅相关知识,没有的请到ST官网或到我的CSDN下载。
没看过我之前的LED文档中的GPIO寄存器详细介绍的建议先看完,再来看该文档。
3、寄存器说明
按键寄存器主要是GPIO的寄存器配置,主要使用到:
-GPIO端口模式寄存器    (GPIOx_MODER) (x = A..D,F)
-GPIO端口输出类型寄存器 (GPIOx_OTYPER) (x = A..D,F)
-GPIO口输出速度寄存器   (GPIOx_OSPEEDR) (x = A..D,F)
-GPIO 口上拉/下拉寄存器 (GPIOx_PUPDR) (x = A..D,F)
这几个相应的寄存器说明请看上节文档>,这里不再做具体介绍。
4、按键配置
① key原理图
② 代码描述
(1)KEY初始化函数
该函数在key.c文件下,主要是打开KEY 时钟,配置PF6 PF7的IO模式
(2)KEY按键轮询函数
这个函数在key.c文件下,该函数主要设计思路是:
判断是否支持连按(mode = 1 支持连按,否则不支持)->判断按键是否被按下->延时10ms->再次检测按键是否被按下(这几步主要是为了防止按键意外被按下或者按键电路短路)->如果按下,返回按键值。