外部中断、定时器中断、串口中断是单片机三大常用中断,掌握这三个中断对认识一个单片机是非常重要的。 先说说外部中断,STM32F4支持16条外部中断线,对应GPIO_PIN_0到GPIO_PIN_15,即可以同时开启16个外部中断,而Nucleo-L496ZG开发板自带一个USER按钮,按钮所在的引脚是PC13,那么,按钮所对应的外部中断线自然就是GPIO_PIN_13了。另外,根据电路图我们可以看到,USER按钮另一端连着的是VCC,而PC13自带外部下拉,即USER是一个上拉按钮,因此,外部中断要设置成上升沿触发才能正常触发。CubeMX配置也不多说,就两步:设置引脚为外部中断-设置不带内部上下拉(因为已经有外部下拉)。 随机数发生器在我以前发布过的Nucleo-F412帖子已经有过,这是Cortex-M4F相比Cortex-M3新增的一个功能,以系统时钟作为随机数种子,可以生成在规定范围内的随机数。这里我设置为外部中断触发生成0~100的随机数。 定时器中断就不多说了,就是设置计数重载值、预设值和分频系数即可。由于CubeMX关于定时器的配置看得我一脸懵逼,因此我选择直接套用以前L476的项目工程的定时器驱动文件,一次调通。 关于串口中断,也是一次调通,效果就是开发板每从串口接收一个字符,蓝色LED灯翻转一次,因此,若一次接收到两个字符,蓝色LED灯效果不变。 不得不说HAL库的编译速度真是卡成狗。 上传工程文件和头文件。 |