突击蓝桥杯嵌入式(二)——LED灯、按键、外部中断
此节主要为基本环境搭建,如何使用CUBEMX配置工程文件、如何调试仿真器等,本节需要实现的功能如下:
配置2个LED和2个按键,按下第一个按键后,led1亮,按下第一个按键后,LED2亮
一、CUBEMX基本配置
首先明确我们需要的外设为,2个LED、2个按键(使用外部中断)
首先搜索STM32G431RB,并选择RBTx
LED灯(PC8-PC15)KEY(PA0,PB0,PB1,PB2),锁存器(PD2)
时钟树
之后创建文件即可,注意文件路径里不能有中文。
二、驱动编写
LED1
void LED1()
{
HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESET); //LED1亮
HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_SET);//LED2灭
}
LED2
void LED2()
{
HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_RESET); //LED2亮
HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SET); //LED1灭
}
外部中断回调函数(注意主函数里要打开锁存器PD2)
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)//这个可以在hal库gpio文件里找到,搜索_weak就行
{
if(GPIO_Pin == GPIO_PIN_0)
{
LED1();
}
if(GPIO_Pin == GPIO_PIN_1)
{
LED2();
}
}