您现在的位置是:首页 >技术交流 >备战蓝桥杯第五天---uart串口通信以及认识stm32NVIC中断网站首页技术交流
备战蓝桥杯第五天---uart串口通信以及认识stm32NVIC中断
1.认识stm32的中断机制NVIC
NVIC中断机制属于芯片内核中的东西 它一共支持256个中断 我们的芯片相当于是一个子集 只用它的部分中断
中断向量表的位置
-------------------中断优先级的设置--------------------
我们的stm32的中断只是用这个寄存器的高四位来设置优先级 这四位要分为抢占优先级和相应优先级来设置
以下是这两个中断优先级的使用场景
我们需要重点了解两个文件以及几个函数 两个文件分别是我们的
汇编文件.s和我们的it.c 而我们要了解的函数需要在main.c里面跳转进去
前两个就是我们的中断分组以及我们的设置优先级
剩下三个就是使能和禁用和我们的系统设置
-------------------------------------我们先通过外部中断来了解一下我们的流程----------------------------------
每个引脚都可以设置位我们的外部中断输入 比如我们让PA0作为我们的EXTI0的输入 然后我们通过边缘检测线路来设置是由上升沿还是下降沿检测(是在我们的cube里面进行设置) 然后我们进行设置我们的中断屏蔽寄存器 再经过挂起激发我们的中断处理函数
总的流程1.在我们的cube里面设置我们的管脚为外部中断输入模式 2.将我们的中断位设置为我们的2:2 3.移植我们的代码
主要是对这三个函数进行移植
在msp.c里面记得设置我们的
滴答定时器
最后一步就是我们回调函数的书写
----------------------------------------------UART中断---------------------------------------------------------
我们只需要了解UART1的内容,它的TX接到我们的PA9,RX 接到我们的PA10.
了解我们的串口内部远离太阳 我们主要需要去配置我们的tx和rx ,RX会引起中断其他就是一些寄存器的配置 如异步时候需要确定我们的波特率以及时钟源的选择 以及波特率的设置
发送步骤:1.使能我们的串口 2.设置我们的字长3.对我们的停止位的数量进行编程4.设置我们的DMA即是对我们的传输和传入进行使能配置5.设置我们的波特率
接受过程如上图
我们在接受时候会产生中断 而我们的中断类型有很多 我们最常用的就是我们的接受不为空 当接受到 数据时候就会产生中断
------------------------------------uart代码解析---------------------------------------
1.先在我们的SOURCE文件里面进行初始化 PA9和PA10都是开漏模式分别设置为我们的rx和tx
再进行移植到我们的uart里面
init里面嵌套调用了我们第二个硬件相关的函数 所以我们在main函数里面只需要调用我们的初始化函数
在我们的it.c里面要写我们的中断处理函数 这个进行移植就行
回调函数需要我们自己进行书写
这是我们的发送的函数 我们先进行减速再发送
uart1的初始化里面就是对结构体的使用 以及嵌套结构体的使用来初始化我们的代码