1. 准备工作
硬件准备
- 开发板
首先需要准备一个小熊派IoT开发板,并通过USB线与电脑连接。
2.生成MDK工程
选择芯片型号
打开STM32CubeMX,打开MCU选择器:
搜索并选中芯片STM32L431RCT6
:
配置时钟源
- 如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC;
- 如果使用默认内部时钟(HSI),这一步可以略过;
这里我都使用外部时钟:
配置LED的GPIO引脚
查看小熊派开发板的原理图,如下:
所以接下来我们选择配置PC13
引脚:
设置用户标签为LED:
配置GPIO引脚为外部中断引脚
查看小熊派开发板的原理图,如下:
所以接下来我们选择配置PB2
引脚和PB3
引脚为外部中断引脚:
因为没有设置硬件上拉,所以我们配置开启上拉电阻,并设置用户标签为KEY1
和KEY2
,接下来是最重要的一步:
- 开启下降沿触发中断:即在按下按键时电平由高变为低时触发
- 开启上升沿触发中断:即在按下按键后松开时电平由低变为高时触发
- 开启下降沿上升沿都触发中断:即在按下时触发,松开时再次触发
这里我选择开启下降沿触发中断:
配置NVIC设置中断优先级
知识小卡片 —— NVIC
NVIC全称Nested vectored interrupt controller
,即嵌套向量中断控制器,用来决定中断的优先级。
NVIC在 ARM Conrtex-M 内核中,用一个 8 位的寄存器来配置,总共可以配置28=2562^8=2562