硬汉嵌入式论坛

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

[ADC] 求助 8bit采样率,dma启用双缓存数据处理的问题

[复制链接]

1

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2025-11-1 10:02:37 | 显示全部楼层 |阅读模式
为了提高采样率和尽量最大化提高存储深度,我打算使用8bit分辨率采样,在使用中遇到一些问题不知道如何解决
根据V7-019_ADC定时器触发+DMA双缓冲实现这个示例代码修改,实用adc1 通道3 ,12 14 16bit正常 ,10bit不能启动adc,8bit出现异常,故障如下

DmaHandle.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;      /*  外设数据传输位宽选择 DMA_PDATAALIGN_BYTE,即8bit  */     //DMA_PDATAALIGN_HALFWORD 即16bit
DmaHandle.Init.MemDataAlignment    = DMA_MDATAALIGN_BYTE;     /*  存储器数据传输位宽选择 DMA_MDATAALIGN_BYTE,即8bit */    //DMA_MDATAALIGN_HALFWORD 即16bit
这里应该用BYTE还是 HALFWORD
当我设置BYTE时,从内存里看数据杂乱无章,类似随机数,不管接什么信号源,都是随机数
当我使用HALFWORD时,从内存中看到的全是0x01XX  0x02XX 0x03XX这样的数据





回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
119429
QQ
发表于 2025-11-1 11:01:16 | 显示全部楼层
注意下对齐和偏移设置


1234.png
回复

使用道具 举报

1

主题

1

回帖

4

积分

新手上路

积分
4
 楼主| 发表于 2025-11-1 11:59:02 | 显示全部楼层
h7系列已经取消了DataAlign,默认右对齐了,所以12 14 16bit不需要设置对齐偏移设置也可以使用。8bit采样如果按他的说明,我dma设置必须用halfword吗?设置设置LeftBitShift?但是不是应该设置向右偏移2个bit吗?文档和实际的hal库的允许处理选项是相悖的?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
119429
QQ
发表于 2025-11-3 14:11:02 | 显示全部楼层
larblue 发表于 2025-11-1 11:59
h7系列已经取消了DataAlign,默认右对齐了,所以12 14 16bit不需要设置对齐偏移设置也可以使用。8bit采样如 ...

不好意思,后面没有及时回复。

我没测试过8bit模式,只是之前留意了下这个地方。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-21 22:26 , Processed in 0.053170 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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