STM32中断功能学习及代码

STM32的学习,这里用到三个工具,CubeMX、Keil和Proteus,有了这三个工具外加一台电脑,就可以好好学习。
中断这个开发流程,也是先从CubeMX进行的单片机配置,内容如下图所示。

其他默认后生成代码也可以仿真,但是如果不是仿真还是做一点设置应该更好。
时钟这里是默认的。
project更改如下:


设置好以后,就可以生成代码,点一下就能自动生成了。然后可以用keil去打开了。只要在main.c里面user code 4部分加入回调函数,就可以实现中断功能。

下面对这个函数进行一些解释。
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) //中断回调函数
{
if(GPIO_Pin==GPIO_PIN_0) //如果中断引脚是PC0
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_10); //引脚PA10输出取反
if(GPIO_Pin==GPIO_PIN_13) //如果输出是PC13
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_7); //引脚PA7取反
}
然后编译,就可以用Proteus进行运行了,画的原理图如下。
