第八周作业

这篇博客介绍了如何使用STM32F103进行中断和DMA通信的学习实践。首先讲解了中断和DMA的基本原理,然后通过实例详细阐述了如何配置GPIO中断控制LED灯的亮灭,接着利用串口中断重做之前的串口通信作业,最后展示了如何设置串口DMA,以高速率向上位机连续发送数据。
摘要由CSDN通过智能技术生成

1.学习stm32中断、DMA通信原理和编程方法

1.1stm32中断
处理器中的中断:在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。
意义:中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程之间的切换。
 中断处理过程:
  进入中断:
   处理器自动保存现场到堆栈里

 {PC, xPSR, R0-R3, R12, LR}

 一旦入栈结束,ISR便可开始执行

 晚到的中断会重新取ISR地址,但无需再次保存现场

退出中断:

 中断前的现场被自动从堆栈中恢复

 一旦出栈完成,继续执行被中断打断的指令

 出栈的过程也可被打断,使得随时可以响应新的中断,而不再进行

现场保存
在这里插入图片描述

在这里插入图片描述
1.2DMA原理
1)DMA的基本定义
DMA,全称Direct Memory Access,即直接存储器访问。
DMA传输将数据从一个地址空间复制到另一个地址空间,用于在外设与存储器之间以及存储器与存储器之间进行高速数据传输。DMA传输过程的初始化和启动由CPU完成,传输过程由DMA控制器来执行,无需CPU参与,从而节省CPU资源,提高利用率。

(2)DMA数据传输的四个要素
① 传输源 :DMA数据传输的来源
② 传输目标:DMA数据传输的目的
③ 传输数量:DMA传输数据的数量
④ 触发信号:启动一次DMA数据传输的动作
当用户将参数设置好,主要涉及源地址、目标地址、传输数据量这三个,DMA控制器就会启动数据传输,当剩余传输数据量为0时 达到传输终点,结束DMA传输 ,当然,DMA 还有循环传输模式 当到达传输终点时会重新启动DMA传输。  
也就是说只要剩余传输数据量不是0,而且DMA是启动状态,那么就会发生数据传输。
(3)STM32的DMA控制器特点
1、STM32F411微控制器具备两个DMA控制器:DMA1和DMA2,每个控制器有8个数据流,每个数据流可以映射到8个通道(或请求);
2、每一个DMA控制器用于管理一个或多个外设的存储器访问请求,并通过总线仲裁器来协调各个DMA请求的优先级;
3、数据流(stream)是用于连接传输源和传输目标的数据通路,每个数据流可以配置为不同的传输源和传输目标,这些传输源和传输目标称为通道(Channel);
4、具备16字节的FIFO。使能FIFO功能后,源数据先送入FIFO,达到FIFO的触发阈值后&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值