前言
使用反客科技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口经过一对保护二极管之后就是上拉或下拉电阻。那么他们的作用又是什么呢。
前言
使用反客科技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口经过一对保护二极管之后就是上拉或下拉电阻。那么他们的作用又是什么呢。
举报