系统异常中断与外部中断统称为中断,复位中断的优先级最高,
NVIC(NestedVectored Interrupt Controller)嵌套向量中断控制器,调整各个中断的优先级,
中断优先级 =抢占优先级(1-4bit)+子优先级(0、1)如果两个中断的抢占优先级与子优先级参数一致,则按照中断向量表里的顺序区分优先级。GPIO的中断,EXTI(External interrupt/event controller)外部中断/事件(event)控制器,外部中断为用户自定义中断内容(用户编写程序发生中断后要干啥事儿),外部事件为具体对应外设自动执行,EXTI 0-15总共16个,GPIO A-G当中的pin尾数与EXTI尾数对应,
例如: GPIOA_Pin_0、GPIOB_Pin_0都对应 EXTI 0;
GPIOA_Pin_1、GPIOB_Pin_1都对应EXTI 1;
中断内部的程序尽量简单(只改个标志位值flag啥的),处理函数放在主函数比较稳妥,中断占用太多资源,则其他中断就歇菜了。假设主函数要处理的问题需要对应的技能类似于孙悟空的72变,那么中断要处理的棘手问题需要对应的技能类似于观音给予孙悟空的三根毫毛,别没啥事儿瞎用。

串口分类及电平都在右侧了。
串口助手用:Mobaxterm,
在STM32项目里,Keil Options forTarget里勾选右侧 Use Micro LIB,
添加如下代码就可以在Keil里使用printf函数了。
代码:
#include "stdio.h" //标准输入输出头文件
int fputc(int ch, FILE *f) //写字符文件函数
{
HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, 10);
return ch;
}
int fgetc(FILE *f) //读字符文件函数
{
uint8_t ch = 0;
HAL_UART_Receive(&huart1, (uint8_t*)&ch, 1, 10);
return (int)ch;
}
//添加以上代码 + √选 UseMicro LIB 后,就可以调用printf函数
审核编辑:符乾江
-
单片机
+关注
关注
6074文章
45340浏览量
663400 -
STM32
+关注
关注
2305文章
11120浏览量
371101 -
编程
+关注
关注
90文章
3707浏览量
96753
发布评论请先 登录
串口空闲中断与串口超时中断介绍
关于stm32f4zgt6和mspm0g3507串口通信问题
【教程】使用STM32F4进行E22-400T22S编程通信教程
STM32 入门工具选型攻略:新手别再盲目入手,选对了才能少走弯路
STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册
STM32开发入门进阶必备!《STM32嵌入式系统开发—基于STM32CubeMX和HAL库》新书发布!

STM32入门编程总结4 (中断+串口)
评论