• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32F103怎么用串口DMA来接收数据

e70211d97b5df3d8 2019-09-04 浏览量:1305
STM32F103怎么用串口2的DMA来接收数据
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 串口可以配置成用DMA的方式接收数据不过DMA需要定长才能产生接收中断如何接收可变长度的数据呢?
    方法有以下3种:
    1.将RX脚与一路时钟外部引脚相连当串口一帧发完即可利用此定时器产生超时中断.这个实时性较高可以做到1个字节实时监测.
    2.不改变硬件开启一个定时器监控DMA接收如果超时则产生中断.这个实时性不高因为超时时间必须要大于需要接收帧的时间精度不好控制.

    3.STM32单片机有的串口可以监测总线是否处于空闲如果空闲则产生中断.可以用它来监测DMA接收是否完毕.这种方式实时性很高.

    另外网上有几个实例都可以进行参考的【stm32f103串口实用DMA实现收发​】。

    • 发布于 2019-09-04
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:2
  • 首先配置该串口对应的 DMA 通道,串口接收寄存器非空触发 DMA 传输,外设地址不变,内存地址递增。开启DMA

    然后正常配置串口,并打使能该串口DMA触发。然后就可以自动接收数据了,你要处理的问题是 接收长度的问题,看你自己的了

    • 发布于2019-09-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以接受dma数据接受长度看你接受的数据大小内存不会变的
    • 发布于2019-09-04
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32F103怎么用串口DMA来接收数据