一、基础知识
1.专业术语
2.NVIC简介
①在这里要注意,中断控制是分级处理的
②是否请求中断是中断源控制的。
③是否响应中断是响应方控制的。
④以外部中断为例,外部中断请求顺序就是首先从请求的外部设备中选出优先级最高的一个设备待中断,之后再由NVIC控制中断。
⑤发生中断时,程序会直接跳转到中断处理子程序执行,也叫中断例程。
3.中断和异常子程序调用的区别
4.NVIC支持的中断数量
支持102个可屏蔽的中断(外部中断)和16个内部中断。
请参考“赛点资源数据包(比赛能看的资料)–>芯片资料–>STM32G4系列微控制器参考手册
5.中断向量表
这里仅仅节选16个内部中断和部分外部中断,详细内容请查阅微控制器参考手册
中断向量表占用1024字节,即1k空间
6.关于中断的更多参考
更多详细内容,请参考“赛点资源数据包(比赛能看的资料)–>芯片资料–>STM32G4系列微控制器参考手册
NVIC中断位于第14章,p441-445
7.通用同步/异步收发器接口USART
加以时钟控制的为同步串行接口;无时钟则为异步串行接口。
在命名中,区别就是有没有’S’
同步传输以同步时钟为代价。
二、串口配置
1.参考内容
查阅产品手册,“7.1 调试器与目标MCU”。
串口通信中有两条线——实现单工和半双工
串口通信中有三条线——实现全双工
关于USART的中断,查询中断向量表即可得知其相关配置信息:
2.CubeMX中对USART的配置
大致步骤:
①配置引脚属性
②配置串口基本数据(波特率、字节长度、校正等)
③配置中断接收(触发中断)
④设置中断优先级
复制上次第12届蓝桥杯节选题的文件夹,作为我们的初始环境(若想要从0开始实现配置可以参考前4节的相关内容)
打开对应的CubeMX,找到USART1
①配置引脚属性
我们回到串口的电路图,可以发现串口的通信用到了PA9和PA10
因此点击这两个引脚,分别进行如图所示的配置:
由于USART要作为异步通信,模式应选为异步
②配置串口基本数据(波特率、字节长度、校正等)
设置波特率为9600,字长8位,无奇偶校验位,停止位1位
(实际上波特率也可以设为其他值,只是需要保证通讯双方的参数一致)
如何去检验通讯双方的参数一致?
赛事资源包中有对应的串口调试助手,双击.exe文件并打开
③配置中断接收(触发中断)
④配置中断优先级
如图所示,优先级共16个等级,用二进制表示则需要四位去表示0000(0)~ 1111(15)