跳转到主要内容
cathy 提交于

本文详细说明STM32f030_KEY的配置,GPIO相关寄存器的配置和功能的说明在上一节STM32F030_LED的文档已经说明。

<strong>1、概述</strong>

-STM32f030r8开发板有四个按键:按键1、按键2、复位键、唤醒键

-STM32f030r8的按键1由PF6复用,按键2由PF7复用

-按键按下相应管教产生低电平

<strong>2、准备工作</strong>

建议准备F0的参考手册和数据手册,方便查阅相关知识,没有的请到ST官网或到我的CSDN下载。
没看过我之前的LED文档中的GPIO寄存器详细介绍的建议先看完,再来看该文档。

<strong>3、寄存器说明</strong>

按键寄存器主要是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)

这几个相应的寄存器说明请看上节文档<<STM32f030_led详细配置说明>>,这里不再做具体介绍。

<strong>4、按键配置</strong>

① key原理图

<center><img src="http://mouser.eetrend.com/files/2017-06/博客/100006540-20342-st1.png&quot; alt=“” width="600"></center>

<center><img src="http://mouser.eetrend.com/files/2017-06/博客/100006540-20343-st2.png&quot; alt=“” width="600"></center>

② 代码描述
(1)KEY初始化函数

<center><img src="http://mouser.eetrend.com/files/2017-06/博客/100006540-20344-st3.png&quot; alt=“” width="600"></center>

该函数在key.c文件下,主要是打开KEY 时钟,配置PF6 PF7的IO模式

(2)KEY按键轮询函数

<center><img src="http://mouser.eetrend.com/files/2017-06/博客/100006540-20345-st4.png&quot; alt=“” width="600"></center>

这个函数在key.c文件下,该函数主要设计思路是:

判断是否支持连按(mode = 1 支持连按,否则不支持)->判断按键是否被按下->延时10ms->再次检测按键是否被按下(这几步主要是为了防止按键意外被按下或者按键电路短路)->如果按下,返回按键值。

声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有,如涉及侵权,请联系小编进行处理。

STM32F030_KEY详细配置说明