STM32中断与DMA通信编程
嵌入式第8周作业
学习stm32中断、DMA通信原理和编程方法。使用stm32tubemx和HAL库分别完成以下编程练习:
1. 用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。
2. 采用串口中断方式重做上周的串口通信作业。
3. STM32采用串口DMA方式,用115200bps或更高速率向上位机连续发送数据。
目录
- STM32中断与DMA通信编程
- 一、STM32中断
-
- 1.基本概念
- 2.抢占优先级
- 3. 响应优先级
- 4.中断控制器
- 5.中断处理过程
- 6.中断管理
- 7.按键中断编程步骤分析
- 二、DMA原理
-
- 1.基本定义
- 2.主要特征
- 3.传输模式
- 三、stm32CubeMX控制LED
-
- 1.初始化代码
- 2.修改代码并点亮流水灯
- 四、HAL库控制LED
-
- 1.新建项目
- 2.修改代码
- 五、总结
- 六、参考文献
一、STM32中断
STM32具有十分强大的中断系统,将中断分为了两个类型:内核异常和外部中断。
1.基本概念
处理器中的中断:在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。
2.抢占优先级
抢占优先级比较霸道,一言不和就插队。抢占优先级高的,能够打断优先级低的任务,等优先级较高的任务执行完毕后,再回来继续执行之前的任务。所以当存在多个抢占优先级不同的任务时,很有可能会产生任务的嵌套。
3. 响应优先级
响应优先级稍微谦逊些,比较有礼貌。响应优先级又被称为次优先级,若两个任务的抢占式优先级一样,那么响应优先级较高的任务则先执行,且在执行的同时不能被下一个响应优先级更高的任务打断,所以我说它比较有有礼貌。
4.中断控制器
NVIC负责除了SYSTICK之外的所有中断的控制
NVIC的主要功能:
- 中断管理
- 支持异常及中断向量化处理
- 支持嵌套中断