STM32F4XX 学习日志:按键触发外部中断

STM32F4XX 学习日志:按键触发外部中断

前言

使用反客科技STM32F407VET6 M1的核心板,板载8M主时钟晶振(HSE),32.768kHz低速外部晶振(LSE)。含有一个用户LED以及一个用户按键。

任务目标

使用按键以及外部中断,编程实现按键控制LED灯状态。

设计过程

硬件

本次实验采用的核心板,带有一个LED灯以及一个按键,核心版图如下

在这里插入图片描述
在这里插入图片描述

复位按键以及电源灯一般都是不可控制的,所以我们需要控制的是用户LED以及按键。
从图上可以看出,灯和按键分别接在了芯片的PC13以及PA15引脚。所以接下来我们就要对对应的引脚进行编程实现对应的目的。
在这里插入图片描述
可以看出PA15属于EXTI15。

软件

GPIO口的配置

#include "gpio.h"

void GPIO_init(void)
{
    GPIO_InitTypeDef  GPIO_InitStructure;
	
   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);    
	//初始化PC13 LED灯
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;				 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//输出模式
	GPIO_InitStructure.GPIO_OType= GPIO_OType_PP;//推挽输出
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //上拉
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//设置IO口带宽		
	GPIO_Init(GPIOC,&GPIO_InitStructure);
	GPIO_SetBits(GPIOC,GPIO_Pin_13);   //拉高 
}  	

这里解释一下为什么要配置为上拉,这是我之前学习时候一直模糊的点。只知道一味的上拉。
GPIO上拉表示接上一个上拉电阻。如下图,
在这里插入图片描述

从图中可以看出IO口经过一对保护二极管之后就是上拉或下拉电阻。那么他们的作用又是什么呢。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页