单元四串口打印中断接收汤宇娇上海城建职业课件_第1页
单元四串口打印中断接收汤宇娇上海城建职业课件_第2页
单元四串口打印中断接收汤宇娇上海城建职业课件_第3页
单元四串口打印中断接收汤宇娇上海城建职业课件_第4页
单元四串口打印中断接收汤宇娇上海城建职业课件_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单元四串口打印—中断接收主讲人:汤宇娇上海城建职业学院本单元内容中断基本概述USART中断库函数说明中断方式的串口通信教学目标了解中断的基本概念了解HAL库的中断设计思想熟练掌握中断方式串口通信的编程方法4.1中断基本概述基本概念UART中断的概念ARMCoetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置。STM32目前支持的中断共84个(16个内部+68个外部),还有16级可编程的中断优先级的设置,仅使用中断优先级设置8bit中的高4位。中断简介基本概念UART中断的概念STM32可支持68个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字节(8位,但是STM32中只使用4位,高4位有效),每4个通道的8位中断优先级控制字构成一个32位的优先级寄存器。68个通道的优先级控制字节至少构成17个32位的优先级寄存器。中断简介基本概念UART中断的概念4bit的中断优先级可以分成2组,从高位看,前面定义的是抢占式优先级,后面是响应优先级。按照这种分组,4bit一共可以分成5组:第0组:所有4bit用于指定响应优先级;第1组:最高1位用于指定抢占式优先级,后面3位用于指定响应优先级;第2组:最高2位用于指定抢占式优先级,后面2位用于指定响应优先级;第3组:最高3位用于指定抢占式优先级,后面1位用于指定响应优先级;第4组:所有4位用于指定抢占式优先级。抢占优先级和响应优先级基本概念UART中断的概念所谓抢占式优先级和响应优先级,他们之间的关系是:具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套。当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。每一个中断源都必须定义2个优先级。抢占优先级和响应优先级基本概念UART中断的概念有几点需要注意的是:如果指定的抢占式优先级别或响应优先级别超出了选定的优先级分组所限定的范围,将可能得到意想不到的结果;抢占式优先级别相同的中断源之间没有嵌套关系;如果某个中断源被指定为某个抢占式优先级别,又没有其它中断源处于同一个抢占式优先级别,则可以为这个中断源指定任意有效的响应优先级别。抢占优先级和响应优先级基本概念UARTUSART中断向量表优先级优先级类型名称说明地址44可设置USART1USART1全局中断0x0000_00D445可设置USART2USART2全局中断0x0000_00D846可设置USART3USART3全局中断0x0000_00DC基本概念UART中断控制器中断控制器NVIC(NestedVectoredInterruptController),NVIC是属于Cortex内核的器件,不可屏蔽中断和外部中断都是由它处理,而SYTICK不是由它处理。NVIC中断控制器3.2USART中断库函数配置中断配置NVIC嵌套向量中断控制器NVIC_InitTypeDefstructureNVIC_InitTypeDef定义于文件“stm32f10x_nvic.h”:typedefstruct{u8 NVIC_IRQChannel;u8 NVIC_IRQChannelPreemptionPriority;u8 NVIC_IRQChannelSubPriority;FunctionalStateNVIC_IRQChannelCmd;}NVIC_InitTypeDef;接口函数:NVIC_Init

函数原型voidNVIC_Init(NVIC_InitTypeDef*NVIC_InitStruct)功能描述根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器入口参数NVIC_InitStruct:指向结构NVIC_InitTypeDef的指针,包含了外设GPIO的配置信息返回值无NVIC驱动有多种用途:例如使能或者失能IRQ中断,使能或者失能单独的IRQ通道,改变IRQ通道的优先级等等。中断配置NVIC串口中断通用处理函数接口函数:USART_ITConfig 函数原型voidUSART_ITConfig(USART_TypeDef*USARTx,u16USART_IT,FunctionalStateNewState)功能描述使能或者失能指定的USART中断入口参数1USARTx:x可以是1,2或者3,来选择USART外设入口参数2USART_IT:待使能或者失能的USART中断源入口参数3NewState:USARTx中断的新状态这个参数可以取:ENABLE或者DISABLE返回值无中断配置NVIC串口中断通用处理函数接口函数:USART1_IRQHandler

函数原型voidUSART1_IRQHandler(void)功能描述USART1中断服务程序入口参数无返回值无中断配置NVIC串口中断通用处理函数接口函数:USART_GetITStatus

函数原型ITStatusUSART_GetITStatus(USART_TypeDef*USARTx,u16USART_IT)功能描述检查指定的USART中断发生与否入口参数1USARTx:x可以是1,2或者3,来选择USART外设入口参数2USART_IT:待检查的USART中断源返回值USART_IT的新状态中断配置NVIC串口中断通用处理函数接口函数:USART_ClearFlag 函数原型voidUSART_ClearFlag(USART_TypeDef*USARTx,u16USART_FLAG)功能描述清除USARTx的待处理标志位入口参数1USARTx:x可以是1,2或者3,来选择USART外设入口参数2USART_FLAG:待清除的USART标志位返回值无3.3中断方式的串口通信串口中断方式UART串口中断方式的特点发送数据时,将一字节数据放入数据寄存器DR;接收数据时,将DR的内容存放到用户存储区;中断方式不必等待数据的传输过程,只需要在每字节数据收发完成后,由中断标志位触发中断,在中断服务程序中放入新的一字节数据或者读取接收到的一字节数据;在传输数据量较大,且通信波特率较高(大于38400)时,如果采用中断方式,每收发一个字节的数据,CPU都会被打断,造成CPU无法处理其他事务。因此在批量数据传输,通信波特率较高时,建议采用DMA方式。串口初始化UART串口中断程序初始化开启时钟GPIO端口配置GPIO初始化USART配置USART中断配置和使能USART使能NVIC优先级分组设置NVIC完成USART配置和使能USART_ITConfig(USART2,USART_IT_RX

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论