STM32F1 _DMA_USART

前言
今天总结“stm32f103dma_usart”,dma学习过计算机人都明白它是什么意思,就是直接存储器存取(direct memory access),很多人都知道它的意思,但基本上不知道的怎么用,或者不知道它的用途。其实dma在计算机里面是非常重要的,它可以减少cpu的资源。大家都用u盘拷贝过数据,这就是很常见的dma应用。假如不适用dma传输数据,我们拷贝大文件的时候,我们的电脑操作其他应用程序的时候估计会把电脑卡死。
今天就总结一下dma常用于串口通信的例子,实例源代码请自行下载。由于时间有限,只讲解了dma发送及中断,接收这一块还没有来得及整理,后期我将以实例讲解,请持续关注。
下载
提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘。
今天的软件工程下载地址(360云盘):
https://yunpan.cn/csdzwimmt8v7s访问密码 4a02
stm32f10x的资料可以在我360云盘下载:
https://yunpan.cn/crbudugdykam2访问密码 ca90
内容讲解
工程概要说明: 今天使用dma1通道4(这里是重点,下面讲解)传输串口发送的数据。工程配置串口使能dma传输,dma按要求发送完成会响应dma中断,这时在中断里变化一次led,以提示的作用。关于串口使用dma接收的原理类似,后期我会举例讲解。
提供的工程以简单为原则,详细中文注释,方便自己方便大家。
关于“stm32f103 dma_usart”我把重要的几点在下面分别讲述:
一、rcc时钟
该函数位于bsp.c文件下面;
注意:
这里是使用rcc_ahbperiphclockcmd,我开始调试的时候,使用rcc_apb1periphclockcmd,怎么都不行,结果我才发现时钟错了。
二、dma的nvic配置
该函数位于bsp.c文件下面;
由于使用dma中断,这里必须配置才能响应中断。
三、dma输出配置
该函数位于main.c文件下面;
主要就是我框出来的两点比较重要,串口发送数据寄存器地址,中断需要配置。
这里我封装成一个发送函数接口,所以下面是直接调用这个函数。
四、dma中断
该函数位于stm32f10x_it.c文件下面;
提出来说,有两点:1、函数必须有。2、需要清除标志位。
五、今天的重点
为什么是“dma1_channel4”,开始学习的人很纳闷,其实这里是规定的(定的要求,见手册)。
说明
今天提供的软件工程基于stm32f103大容量芯片,其实只要适当修改工程的部分配置,stm32f1的芯片都适用。

APView500系列电能质量监测装置电压波动监测,电压骤降闪变监测
快讯:断臂求生,华为会卖掉荣耀吗?
Acrel-2000MG微电网能量管理系统在新能源储能行业中的应用
数字化转型指数报告(2023):数字化转型十大发现
本土EDA公司英诺达完成融资 由复星领投
STM32F1 _DMA_USART
tcp0030a电流探头规格及其应用
电气故障检修的3个步骤及8大技巧
德国首个电子医疗档案应用软件上线 可涵盖2500万名参保人员
单片机电子秤电路图大全(六款电路图)
5G独立组网和非独立组网的8种方式怎么进行网络部署?
博通计划在西班牙投资10亿美元建设半导体工厂
电动机不能转动的四大原因
UCloud优刻得特惠双11 乌兰察布云服务器让利达95%
iPhone XR安兔兔跑分曝光,性能碾压一切Android手机
几款智能音箱价格及性能对比_天猫精灵_京东叮咚
关键信息触手可及,益莱储为客户提供全天候MyER自定义管理平台
使用可参数化功能块(例如FB20)进行故障评估
中国云计算产业应用落地的进程将加快,创新模式也将无限拓展
人工智能时代GPU将成新宠?