DMA和IO端口

本文详细介绍了STM32的DMA模块,阐述了其提高效率的原理和DMA传输的四个步骤。STM32F103提供7路通用DMA,支持多种外设交互。此外,还探讨了GPIO端口,包括其工作模式和引脚分组,强调了GPIO的灵活性和多功能性。
摘要由CSDN通过智能技术生成


杨桃32学习笔记,本文图片文字皆为转述
参考博客连接

一、DMA模块

使用DMA(直接存储器的访问)模块的目的在于提高效率,它的优点在于DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU的效率大为提高。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用,在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。一个完整的DMA传输过程必须经过DMA请求、DMA响应、DMA传输、DMA结束4个步骤。
在这里插入图片描述
在这里插入图片描述
STM32F103中有灵活的7路通用DMA可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输;DMA控制器支持环形缓存区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。
每个通道都有专门的硬件DMA请求逻辑,同时可以由软件触发每个通道;传输的长度、传输的源地址和目标地址都可以通过软件单独设置。
STM32F103 中DMA可以用于主要的外设有:SPI、I²C、USART,通用、基本和高级控制定时器TIMx和ADC。
在这里插入图片描述
红色箭头均为DMA,体现了上面提及的管理存储器到存储器、设备到存储器和存储器到设备的数据传输。

二、I/O端口模块

2.1 io口介绍

在这里插入图片描述
通用GPIO端口简称I/O端口(接口),每个GPIO引脚都可以由软件配置相应的控制寄存器成输出(推挽或开漏)、输入(带或不带上拉)或复用的外设功能端口。多数GPIO引脚都与数字或模拟的复用外设公用。除了具有模拟输入功能的端口,所有的GPIO引脚都有大电流通过能力。在需要的情况下,I/O引脚的外设功能可以通过一个特定的操作锁定,以避免意外的写入O/O寄存器。在APB2上的I/O引脚可达18MHz的反转速度,APB2是内部通信总线。
在这里插入图片描述

2.2 io口工作模式

在这里插入图片描述

2.3 io口引脚分组

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值