STM32CubeMX中断相关配置
文章目录
- STM32CubeMX中断相关配置
- 1. 选择你要用的芯片(双击打开)
- 2. 设置串口写入
- 3. 配置时钟树,外部时钟为系统时钟(PLL倍频时钟)
- 4. 查看原理图,找到可以中断控制的器件,或者外接小灯来达到中断控制小灯的一个目的,我这里PB8外接小灯。顺便外接一个按键达到(按键产生中断控制小灯亮灭的功能)
- 5. 配置相关GPIO信息(PA4)
- 6. 配置相关GPIO信息(PB8) (正常配置及可,反正是中断控制反转LED状态)
- 7. 配置NVIC
- 9. 正常生成代码,不会看以前文章,如何生成。
- 10.在生成基础上修改代码(keil5)
- 重写void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
- 结束
1. 选择你要用的芯片(双击打开)
2. 设置串口写入
3. 配置时钟树,外部时钟为系统时钟(PLL倍频时钟)
4. 查看原理图,找到可以中断控制的器件,或者外接小灯来达到中断控制小灯的一个目的,我这里PB8外接小灯。顺便外接一个按键达到(按键产生中断控制小灯亮灭的功能)
PB8接小灯,PA4接按键
5. 配置相关GPIO信息(PA4)
选择第二个,下降沿触发中断。
拓展:底层原理为下图,输入线既是通道输入进来的。
6. 配置相关GPIO信息(PB8) (正常配置及可,反正是中断控制反转LED状态)
7. 配置NVIC
打上勾勾,既是能EXTI通道4过来的中断。
后面俩个分别是(抢占优先级,和普通优先级)
拓展:下图为EXTI通道,用到PA4中断,既是EXIT第4通道
9. 正常生成代码,不会看以前文章,如何生成。
此文章后半段描述了,如何生成代码。
https://blog.csdn.net/qq_52749711/article/details/129223803
10.在生成基础上修改代码(keil5)
打开工程——>编译,主函数不用管,只操作相关中断即可
可以看到这里以及调用中断函数这时只需要一步步向下寻找,重写函数即可。
/**
* @brief This function handles EXTI line4 interrupt.
*/
void EXTI4_IRQHandler(void)
{
/* USER CODE BEGIN EXTI4_IRQn 0 */
/* USER CODE END EXTI4_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_4);
/* USER CODE BEGIN EXTI4_IRQn 1 */
/* USER CODE END EXTI4_IRQn 1 */
}
//void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)//既是重新这个函数
重写void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
/* USER CODE BEGIN 1 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
//选择是谁触发的中断
switch(GPIO_Pin){
case GPIO_PIN_4:
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_8); //HAL库反转LED灯的函数
break;
}
}
/* USER CODE END 1 */
到这里也就实现了,中断控制小灯的反转了。将keil5中的程序烧入stm32开发板即可。
结束
如果对您有帮助,点赞支持一下吧。
转载联系作者。