电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

STM32USART串口DMA接收和发送的源码详解!VIP免费

STM32USART串口DMA接收和发送的源码详解!_第1页
1/10
STM32USART串口DMA接收和发送的源码详解!_第2页
2/10
STM32USART串口DMA接收和发送的源码详解!_第3页
3/10
1 STM32 USART 串口 DMA 接收和发送的源码详解! 嘿儿哈20130126 一直都没有机会用STM32 做什么项目,好在公司产品要平台升级,用到了STM32,所以最近在调试STM32,先说USART,后面再来说I2C 等等 硬件平台:STM32F103ZET6; 开发环境:KEIL 4; 先说说应用通讯模式,串口终端的工作方式和迪文屏差不多,终端被动接受MCU 发的指令,终端会偶尔主动发送一些数据给MCU(像迪文屏的触摸信息上传)。 串口DMA 发送: 发送数据的流程: 前台程序中有数据要发送,则需要做如下几件事 1. 在数据发送缓冲区内放好要发送的数据,说明:此数据缓冲区的首地址必须要在DMA 初始化的时候写入到DMA 配置中去。 2. 将数据缓冲区内要发送的数据字节数赋值给发送DMA 通道,(串口发送DMA和串口接收 DAM 不是同一个 DMA 通道) 3. 开启 DMA,一旦开启,则 DMA 开始发送数据,说明一下:在KEIL 调试好的时候,DMA 和调试是不同步的,即不管 Keil 是什么状态,DMA 总是发送数据。 4. 等待发送完成标志位,即下面的终端服务函数中的第 3 点设置的标志位。或者根据自己的实际情况来定,是否要一直等待这个标志位,也可以通过状态机的方式来循环查询也可以。或者其他方式。 判断数据发送完成: 启动DMA 并发送完后,产生 DMA 发送完成中断,在中断函数中做如下几件事: 1. 清 DMA 发送完成中断标志位 2. 关闭串口发送DMA 通道 3. 给前台程序设置一个软件标志位,说明数据已经发送完毕 串口DMA 接收: 接收数据的流程: 已 核 实通过 2 串口接收DM A 在初始化的时候就处于开启状态,一直等待数据的到来,在软件上无需做任何事情,只要在初始化配置的时候设置好配置就可以了。 判断数据数据接收完成: 这里判断接收完成是通过串口空闲中断的方式实现,即当串口数据流停止后,就会产生 IDLE 中断。这个中断里面做如下几件事: 1. 关闭串口接收DM A 通道,2 点原因:1.防止后面又有数据接收到,产生干扰。2.便于DM A 的重新配置赋值,下面第 4 点。 2. 清除 DM A 所有标志位 3. 从 DM A 寄存器中获取接收到的数据字节数 4. 重新设置DM A 下次要接收的数据字节数,注意,这里是给 DM A 寄存器重新设置接收的计数值,这个数量只能大于或者等于可能接收的字节数,否则当 DM A 接收计数器递减到0 的时候,又会重载这个计数值,重新循环递减计数,所以接收缓冲区的数据则会...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

STM32USART串口DMA接收和发送的源码详解!

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部