跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. ADC采样结果与通道不一致,配置了10个通道,如果单独只采集一个时对的,循环采集多个时样结果与通道不一致

ADC采样结果与通道不一致,配置了10个通道,如果单独只采集一个时对的,循环采集多个时样结果与通道不一致

已定时 已固定 已锁定 已移动 已解决 YTM32B1M系列
9 帖子 2 发布者 885 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • pengszP 离线
    pengszP 离线
    pengsz
    写于 最后由 编辑
    #1

    a94c3512-d915-4ad5-a929-9a0a37ff5aa0-企业微信截图_17756330817228.png fe1f4c56-affc-4548-84c4-a97c0a24e7a9-企业微信截图_17756331795194.png d74f8e43-b213-4030-9396-a1a4888257a3-企业微信截图_17756332334564.png

    1 条回复 最后回复
    0
    • DigaD 离线
      DigaD 离线
      Diga
      写于 最后由 编辑
      #7

      你这个代码问题有点多,第一,你配置的是 STEP 触发,就是一次触发一个通道的转换,但是实际你等待的序列完成标志,第二,等待序列完成标志后,并未及时清除该标志,第三,等待序列完成标志后,意味着整个序列已经转换完成,但你只读取了一个通道的结果,剩余通道的结果都还在寄存器里,未被及时读出。
      建议先看一下 ADC 相关的 Demo,以及 ADC 相关的应用笔记

      1 条回复 最后回复
      0
      • pengszP 离线
        pengszP 离线
        pengsz
        写于 最后由 编辑
        #2

        参考以前的贴子也不行,是用keil编译的,是什么原因

        1 条回复 最后回复
        0
        • DigaD 离线
          DigaD 离线
          Diga
          写于 最后由 编辑
          #3

          可以把你每次的转换数据给保留一下,高 16 bit 是通道号,确定是不是与你设置的一致

          1 条回复 最后回复
          0
          • pengszP 离线
            pengszP 离线
            pengsz
            写于 最后由 编辑
            #4

            不一致,ADC_DRV_ConfigSequence这个函数配置的是21通道,ADC0->FIFO高16bit 是0x0F.[图片]

            vsg_output_1775641655979.jpg

            1 条回复 最后回复
            0
            • pengszP 离线
              pengszP 离线
              pengsz
              写于 最后由 编辑
              #5

              现在的现象本来是采集0、1、6、10、11、12、13、20、21、24,读出来变成了1、6、10、11、12、13、20、21、24,0通道的值

              1 条回复 最后回复
              0
              • pengszP 离线
                pengszP 离线
                pengsz
                写于 最后由 编辑
                #6

                企业微信截图_1775701553605.png在con_val = ADC0->FIFO;加个1ms的延时就能对上

                1 条回复 最后回复
                0
                • DigaD 离线
                  DigaD 离线
                  Diga
                  写于 最后由 编辑
                  #7

                  你这个代码问题有点多,第一,你配置的是 STEP 触发,就是一次触发一个通道的转换,但是实际你等待的序列完成标志,第二,等待序列完成标志后,并未及时清除该标志,第三,等待序列完成标志后,意味着整个序列已经转换完成,但你只读取了一个通道的结果,剩余通道的结果都还在寄存器里,未被及时读出。
                  建议先看一下 ADC 相关的 Demo,以及 ADC 相关的应用笔记

                  1 条回复 最后回复
                  0
                  • pengszP 离线
                    pengszP 离线
                    pengsz
                    写于 最后由 编辑
                    #8

                    image.png
                    企业微信截图_17757035047783.png我这边是配置了10个adc_config,每个都只有一个通道,方便单独读取某一通道值,这样不行吗

                    1 条回复 最后回复
                    0
                    • DigaD 离线
                      DigaD 离线
                      Diga
                      写于 最后由 编辑
                      #9

                      emmm,可以这么用

                      1 条回复 最后回复
                      0
                      • ,FrankieF Frankie 将这个主题转为问答主题
                      • ,FrankieF Frankie 将这个主题标记为已解决

                    • 云途开发生态介绍

                      快速上手云途开发生态

                    • 云途论坛规则/Yuntu Forum Rules

                      发帖前请查看

                    • YT CONFIG TOOL调查问卷

                      帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

                    • can
                      25
                      demo
                      22
                      lin stack
                      13
                      uds
                      13
                      md14
                      6
                      yt-link
                      6
                      fbl
                      5
                      adc模块
                      4
                      Online Users
                      luxiaoguoL
                      luxiaoguo
                      • 登录

                      • 登录或注册以进行搜索。
                      • 第一个帖子
                        最后一个帖子
                      0
                      • 版块
                      • 最新
                      • 标签
                      • 热门