1、实验内容

S4、S5分别接PB12和PB13,实验要求,按下S4,D1亮,D2灭;按下S5,D2亮,D1灭。
由于按键学习的是GPIO口的输入功能,和输出功能的配置略有区别。本次通过按键触发相应功能没有使用中断,完全是软件控制。
2、代码实现
(1)GPIO口输入功能配置-按键初始化(封装成函数)
#include "stm32f10x.h" // Device header
#include "delay.h"
void Key_Init(void)
{
/*GPIO初始化*/
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/*开启时钟*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //开启GPIOB的时钟
GPIO_Init(GPIOB, &GPIO_InitStructure); //将PB12和PB13引脚初始化为上拉输入
}
开启GPIOB时钟,配置2个按键的输入模式为上拉输入,速度50MHz,端口初始化。
(2)读取按键键值的函数
uint8_t Key_GetNum(void)
{
uint8_t KeyNum = 0; //定义变量,默认键码值为0
if (GP

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



