硬汉嵌入式论坛

 找回密码
 立即注册
查看: 582|回复: 2
收起左侧

[有问必答] 请教一下,dma数据接收的问题

[复制链接]

2

主题

7

回帖

13

积分

新手上路

积分
13
发表于 2022-4-13 22:49:07 | 显示全部楼层 |阅读模式
QQ图片20220413224204.png

dma_init_struct.memory0_addr = (uint32_t)rx_buf;
串口接收,dma直接搬运到rx_buf[],但是每次接收都是在此数据后追加数据,想请问一下,有没有什么办法,让每次接收数据都覆盖之前的数据,数据从rx_buf[0]开始存储,
如 第一次 rx_buf[x]={'r','e',.. }
   第二次 rx_buf[x]={01 ,00,ff,...}
从0开始的话,好处理数据,否则的话,估计只能用环形队列了,但是多个地方使用串口,每次都要计算偏移地址,就感觉麻烦了,哪位有什么好办法吗?
回复

使用道具 举报

210

主题

1044

回帖

1684

积分

至尊会员

More we do, more we can do.

积分
1684
发表于 2022-4-14 08:56:39 | 显示全部楼层
你没有指明MCU型号,我以F0为例,数据处理完后,关闭对应DMA通道,重置DMA_CNDTRx,这时候就是重新从头开始写入。
回复

使用道具 举报

335

主题

2036

回帖

3046

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3046
发表于 2022-4-14 10:42:46 | 显示全部楼层
本帖最后由 caicaptain2 于 2022-4-14 10:45 编辑

赞同
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-9 16:18 , Processed in 0.264008 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表