当前位置:文档之家› 实验六 串口DMA实验

实验六 串口DMA实验

实验六 串口DMA实验
实验六 串口DMA实验

实验六串口DMA实验

一、实验目的

进一步掌握串口编程,理解DMA传送原理,进一步学习DMA编程。

DMA简介:

DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无需CPU任何干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。

STM32 最多有2 个DMA 控制器(DMA2 仅存在大容量产品中),DMA1 有7 个通道。DMA2 有5个通道。每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA 请求的优先权。

表1 DMA1通道分配

表2 DMA2通道分配

二.实验内容

1.采用DMA方式实现串口数据的接收(连续收到8个字节产生DMA接收完成中断)。2.将任务1中接收到的数据采用DMA方式由原串口发送回去。

实现思路:

1)先在DMA通道分配表中找到串口3发送分配到哪个DMA通道(DMA1 通道2)

2)对DMA1 通道2进行正确配置

3)注意,配置完后不要使能该DMA通道,数据接收完后使能(即收完数据后才执行

DMA发送数据动作),数据发送完毕后将该DMA通道禁止

4)配置USART3发送数据采用DMA方式

5)中断配置及中断服务程序编写。

三.实验设备

硬件部分:采用软件仿真实现

软件部分:PC机WINDOWS系统、MDK KEIL软件、串口调试助手、VSPD。

四.实验步骤

1采用软件仿真,串口工具安装及配置参考实验四

2编写主程序代码,设置串口、DMA

3编写中断服务程序代码

4编译、调试代码

5记录实验过程,撰写实验报告

五.实验结果及测试

画出程序流程图,写出实验结果。

六、实验说明

1. 实验板电路原理图、硬件接口请参见《2012单片机应用系统实验箱电路》,实验前请务必查看!

2. STM32 标准外围固件库在“STM32相关开发工具+文档\固件库\”。关于如何使用STM32 标准固件库建立工程,请参阅第一章第三小节。

3. 核心参考程序参考附录对应部分,对于不认识的寄存器请参考“stm32f10x参考手册(第十版).pdf”,该文件在“STM32相关开发工具+文档\参考资料\”目录下。

七、实验扩展

1.假设,有一个设备用串行口以9600的波特率发送数据,并且大概每80毫秒发送8个字节的数据。要求将该设备发送的数据求平均值后送回。

采用DMA方式接收数据,接收完成后发生中断,然后DMA通道使用另一个缓冲区继续接收数据。而这时CPU可以处理数据,计算刚接收到数据的平均值,然后送回。这样,CPU 和DMA间做到并行工作。(学习双缓冲兵乓操作,理解互斥资源)

相关主题
文本预览
相关文档 最新文档