你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F1_DMA(USART)

[复制链接]
ybhuangfugui 提问时间:2016-5-19 00:06 /
前言
今天总结“STM32F103 DMA_USART”,DMA学习过计算机人都明白它是什么意思,就是直接存储器存取(Direct Memory Access),很多人都知道它的意思,但基本上不知道的怎么用,或者不知道它的用途。其实DMA在计算机里面是非常重要的,它可以减少CPU的资源。大家都用U盘拷贝过数据,这就是很常见的DMA应用。假如不适用DMA传输数据,我们拷贝大文件的时候,我们的电脑操作其他应用程序的时候估计会把电脑卡死。
今天就总结一下DMA常用于串口通信的例子,实例源代码请自行下载。由于时间有限,只讲解了DMA发送及中断,接收这一块还没有来得及整理,后期我将以实例讲解,请持续关注。
每天总结的不仅仅是基础,而是重点,不起眼的重点,容易被人忽视的重点。关注微信公众号“EmbeddDeveloper”还有更多精彩等着你。
公众号0.5m.jpg
本着免费分享的原则,将总结的工程源代码分享给大家,还望看到的朋友关注一下微信公众号,并将文章分享给你的朋友。
下载
提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘。
今天的软件工程下载地址(360云盘):
http://yunpan.cn/cSdzWimMT8v7S  访问密码 4a02
STM32F10x的资料可以在我360云盘下载:
http://yunpan.cn/crBUdUGdYKam2   访问密码 ca90
内容讲解
工程概要说明: 今天使用DMA1通道4(这里是重点,下面讲解)传输串口发送的数据。工程配置串口使能DMA传输,DMA按要求发送完成会响应DMA中断,这时在中断里变化一次LED,以提示的作用。关于串口使用DMA接收的原理类似,后期我会举例讲解。
提供的工程以简单为原则,详细中文注释,方便自己方便大家。
关于“STM32F103  DMA_USART” 我把重要的几点在下面分别讲述:
一、RCC时钟
DMA_USART_1.png
该函数位于bsp.c文件下面;
注意:
这里是使用RCC_AHBPeriphClockCmd,我开始调试的时候,使用RCC_APB1PeriphClockCmd,怎么都不行,结果我才发现时钟错了。
二、DMA的NVIC配置
DMA_USART_2.png
该函数位于bsp.c文件下面;
由于使用DMA中断,这里必须配置才能响应中断。
三、DMA输出配置
DMA_USART_3.png
该函数位于main.c文件下面;
主要就是我框出来的两点比较重要,串口发送数据寄存器地址,中断需要配置。
这里我封装成一个发送函数接口,所以下面是直接调用这个函数。
四、DMA中断
DMA_USART_4.png
该函数位于stm32f10x_it.c文件下面;
提出来说,有两点:1、函数必须有。2、需要清除标志位。
五、今天的重点
为什么是“DMA1_Channel4”,开始学习的人很纳闷,其实这里是规定的(定的要求,见手册)。
DMA_USART_5.png
说明
今天提供的软件工程基于STM32F103大容量芯片,其实只要适当修改工程的部分配置,STM32F1的芯片都适用。
最后
如果觉得内容适合你(如:内容易读易懂等),你又想了解更多相关内容,请关注公众号,新内容持续更新中,后期将会有更多优秀内容出现。
赞是一种鼓励、分享是最好的支持!


收藏 3 评论0 发布时间:2016-5-19 00:06

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版