0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GD32 ADC规则组多通道采样,数据发生错位?

聚沃科技 2024-03-14 09:58 次阅读

我们知道,使用ADC规则组(常规组)多通道采样时,必须要配合DMA使用,但有的小伙伴遇到这种应用下数据错位的情况,比如预设的转换顺序是通道0->通道1->通道2,但定义的数据buffer中的采样值却是通道1->通道2->通道0,那这是为什么呢?

出现这种情况的一个可能原因是——ADC先使能再去配置DMA。我们来看下面的时序:

wKgZomXyWTiAEpmPAAA9YFo96dA479.png

如果先配置并使能ADC,当触发信号来临,ADC开始转换,若ADC转换到通道1的时候,DMA才配置并使能,那么DMA是不会搬运通道0的数据的,而是当通道1的转换结束后,DMA才开始搬运第一个数据到buffer[0],所以buffer中的数据顺序就变成了数据1->数据2->数据0。

我们再来看下先配置DMA再配置ADC的时序:

wKgZomXyWT6AAbU6AAA_DRuN2Gk286.png

ADC在转换第一个通道时,DMA已经准备好搬运数据,所以DMA的第一次搬运发生在ADC的第一个通道转换完成后,故数据将不会错位。

所以小伙伴知道了吗?ADC+DMA使用的时候,一定要先配置DMA,再配置ADC哦。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6043

    文章

    44617

    浏览量

    638338
  • adc
    adc
    +关注

    关注

    99

    文章

    6533

    浏览量

    545690
  • GD32
    +关注

    关注

    7

    文章

    413

    浏览量

    24453
  • muc
    muc
    +关注

    关注

    0

    文章

    15

    浏览量

    11450
收藏 人收藏

    评论

    相关推荐

    GD32 ADC规则通道采样数据发生错位? #GD32 #ADC #单片机 #嵌入式开发

    单片机嵌入式开发
    聚沃科技
    发布于 :2024年03月14日 10:01:04

    ADC规则通道和注入通道混合使用(转)

    ADC_SQRx 和 ADC_JSQR 寄存器中设置的至 20 个转换序列。还有在规则通道使用DMA
    发表于 01-19 10:40

    GD32F310-ADC规则连续采样简介

    ADC 简介及特点器件中集成了一个 12 位 2.86 MSPS 通道 ADC。 一共有19个多路复用通道:16个外部
    发表于 09-28 10:52

    GD32F310-ADC规则连续采样

    即可配置。有一点疑问的地方就是ADC_CTL1寄存器中的 ETSRC[2:0] 的软件触发选项,目前是不用配置也不影响你的软件触发ADC转换。注入通道的 ETSIC[2:0] 没有测试,大致应该是一样的。原作者:兆易创新
    发表于 10-21 15:21

    GD32F427开发板上实现ADC规则连续采样

    ADC 简介及特点器件中集成了一个 12 位 2.6 MSPS 通道 ADC。 一共有19个多路复用通道:16个外部
    发表于 11-25 11:11

    STM32G070 DMA ADC通道数据错位

    STM32G070 配置DMA ADC转换。想通过软件定时触发连续转换一个序列后停止。测试时发现采样时间设置快了会出现ADC通道数据
    发表于 03-01 16:56

    GD32GD32读取ADC数据

    GD32ADC有很多模式,这里教大家使用最简单的软件触发读取ADC,我使用的芯片是 GD32F350K8U6使用步骤1.初始化IO引脚设置为模拟输入模式2.初始
    发表于 12-02 15:06 28次下载
    【<b class='flag-5'>GD32</b>】<b class='flag-5'>GD32</b>读取<b class='flag-5'>ADC</b><b class='flag-5'>数据</b>

    GD32GD32 DMA+ADC通道扫描

    芯片:GD32F350 运行在8M目标:每10ms读取三个adc通道,并且通过DMA传输流程1.配置DMA传输2.配置ADC模式和通道3.配
    发表于 12-02 15:06 24次下载
    【<b class='flag-5'>GD32</b>】<b class='flag-5'>GD32</b> DMA+<b class='flag-5'>ADC</b><b class='flag-5'>多</b><b class='flag-5'>通道</b>扫描

    你了解GD32 MCU的命名规则

    下面为大家介绍GD32 MCU的通用命名规则,以GD32F303ZGT6为例,其中,GD32代表GD32 MCU,F代表通用系列产品类型,3
    的头像 发表于 01-13 09:38 3816次阅读
    你了解<b class='flag-5'>GD32</b> MCU的命名<b class='flag-5'>规则</b>吗

    GD32 ADC内部通道采样异常原因

    熟悉GD32的小伙伴都知道,ADC除了可以采集IO口上的电压外,还有两个内部通道,分别为内部温度传感器通道ADC0_CH16)和Vrefi
    的头像 发表于 01-26 09:45 3141次阅读
    <b class='flag-5'>GD32</b> <b class='flag-5'>ADC</b>内部<b class='flag-5'>通道</b><b class='flag-5'>采样</b>异常原因

    如何通过GD32 MCU内部ADC参考电压通道提高采样精度?

    ADC采样精度受很多因素影响,比如电源波动、参考电压波动、输入信号波动等,GD32 MCU内部提供了一个参考电压通道,理论上可以优化由于电源和参考电压较大波动引入的
    的头像 发表于 02-26 09:14 2468次阅读
    如何通过<b class='flag-5'>GD32</b> MCU内部<b class='flag-5'>ADC</b>参考电压<b class='flag-5'>通道</b>提高<b class='flag-5'>采样</b>精度?

    GD32 ADC转换时间如何计算?

    GD32 MCU当前产品的ADC都是SAR ADC,它有着转换速度快,精度高的优点,刚好适合在一些需要快速ADC转换的场合使用,比如电机应用。那么小伙伴们知道如何计算
    的头像 发表于 03-04 09:33 2503次阅读
    <b class='flag-5'>GD32</b> <b class='flag-5'>ADC</b>转换时间如何计算?

    GD32F470紫藤派开发板使用手册】第八讲 ADC-规则通道采样实验

    通过本实验主要学习以下内容: •ADC的简介 •GD32F470 ADC工作原理 •DMA原理 •规则
    的头像 发表于 05-12 10:00 886次阅读
    【<b class='flag-5'>GD</b>32F470紫藤派开发板使用手册】第八讲 <b class='flag-5'>ADC</b>-<b class='flag-5'>规则</b><b class='flag-5'>组</b><b class='flag-5'>多</b><b class='flag-5'>通道</b><b class='flag-5'>采样</b>实验

    GD32H757Z海棠派开发板使用手册】第八讲 ADC-规则通道采样实验

    通过本实验主要学习以下内容: ADC的简介 GD32FH757 ADC工作原理 DMA和DMAMUX的原理 规则
    的头像 发表于 05-14 09:39 746次阅读
    【<b class='flag-5'>GD</b>32H757Z海棠派开发板使用手册】第八讲 <b class='flag-5'>ADC</b>-<b class='flag-5'>规则</b><b class='flag-5'>组</b><b class='flag-5'>多</b><b class='flag-5'>通道</b><b class='flag-5'>采样</b>实验

    GD32F303红枫派开发板使用手册】第十二讲 ADC-双轴按键摇杆通道循环采样实验

    本实验是通过ADC规则通道循环采样方式实现双轴按键摇杆传感器x和y轴电压值的读取,通过本实验
    的头像 发表于 06-11 09:40 710次阅读
    【<b class='flag-5'>GD</b>32F303红枫派开发板使用手册】第十二讲   <b class='flag-5'>ADC</b>-双轴按键摇杆<b class='flag-5'>多</b><b class='flag-5'>通道</b>循环<b class='flag-5'>采样</b>实验