STM32学习100步之第七步——DMA和I/O端口

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。
在这里插入图片描述
图片出自样桃电子。

I/O端口模块

STM32F103有多达80个快速I/O端口,有26/37/51/80个I/O口(根据封装不同,I/O口引出的数目不同,比如32引脚的单片机有引出27个I/O,48引脚的单片机引出32个I/O口),所有的I/O口均可映像到16个外部中断;几乎所有(不是所有)端口可容忍5V电压
通用GPIO端口简称I/O端口(接口),每个GPIO引脚都可以由软件配置相应的控制寄存器成输出(推挽或开漏)、输入(带或不带上拉)或复用的外设功能端口。多数GPIO引脚都与数字或模拟的复用外设公用。除了具有模拟输入功能的端口,所有的GPIO引脚都有大电流通过能力。在需要的情况下,I/O引脚的外设功能可以通过一个特定的操作锁定,以避免意外的写入O/O寄存器。在APB2上的I/O引脚可达18MHz的反转速度,APB2是内部通信总线。在这里插入图片描述
图片出自样桃电子。在这里插入图片描述
图片出自样桃电子。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值