stm32的DMA触发问题

关注

单片机 单片机综合应用 6da5db5566e26dd3    2018-08-10   |   浏览量 47  
最近想学习一下stm32的DMA传输,有几个地方一直搞不清楚:看的是正点原子的源码,我想的是,如果与DMA接收串口发过来的数据的话该怎么接收呢,单片机怎知道什么时候该接收这个数据然后什么时候再接收下一个数据呢,就是单片机怎么智能的确定接收两个数据之间的时间间隔,我串口发数据就不是每个数据发的时间间隔都一样???

全部回答

  • 向悫 发表于 2018-08-10 云汉达人

    建议使用CubeMX软件来进行配置:

    只需要将你的外设,和DMA简单的配置一下,就可以了。下图为我使用串口DMA收发数据:

    QQ截图20180810185136.jpg

    配置后,在找度娘问下:

    CubeMX 串口DMA,轻松搞定

    回答点赞:   pulsar 举报 评论 1

  • 请输入用户名 发表于 2018-08-10

    USART1,USART2串口都有对应的DMA通道,对DMA进行配置后,开启DMA通道。在配置中,就会要求设置DMA缓存大小、缓存定义的数组名,这样就能将串口收到的数据放到定义的缓存数组区域里。可以在判断长度后去将数据取出来进行处理。

    举报 评论 0

  • 勇哥来巡山 发表于 2018-08-11

    这个设置好DMA串口接收后就会自动的使能接收串口数据,不需要外部的去处理,你只要不停的读取缓冲区的数据就行

    举报 评论 0

  • chen0000009 发表于 2天前

    串口这种都是会存在突发传输的,要想时间确定不大可能。目前我的方案是使用串口空闲中断(IDLE)配合DMA使用,DMA一直打开,直到出现IDLE中断时才去将DMA收到的数据取出来

    举报 评论 0

我来回答

试用推荐

正点原子阿波罗STM32F767开发板

产品总数:3个  申请人数:54

距离结束时间:

推荐达人 更多>

  • 王奕 向ta提问

    Eagleson

    在学习FPGA的道路上 我们一起成长吧!

    在行: FPGA/CPLD

  • 靳飞 向ta提问

    汉云

    在路上的Linuxer

    在行: DSP技术 Linux 系统 STM32讨论区 PIC单片机 PCB技术/设计/定制

  • Angel Cherry 向ta提问

    MOP

    用愛和熱忱寫好每一行Code

    在行: FPGA/CPLD Linux 系统 热门单片机

  • 徐珂靖 向ta提问

    xukejing

    Linux系统 、热门开发板

    在行: Linux 系统

  • 袁建明 向ta提问

    河北博联科技有限公司 研发部经理

    日知其所亡

    在行: Linux 系统 灵动微MCU 电源技术

完成答题
赶快去开启您的宝箱吧
了解详情