久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2397|回復: 2
打印 上一主題 下一主題
收起左側

STM32 LL庫ADC雙通道采樣電壓值疊加是什么?

[復制鏈接]
跳轉到指定樓層
樓主
我在使用LL庫中配置ADC用DMA模式傳輸數據,雙通道采樣電壓值,為什么仿真出來的結果會是疊加的,而且值不能最低不能為0,最低為0x0800(上下波動一點),輸入一個AI,最大值為0X0BFF,輸入兩個AI才會到0X0FFF,也就是AI1和AI2通道單獨輸入可以都能讀取0X0800~0X0BFF的值,但是一起輸入在DMA內存地址的數組中就會將兩者的值疊加?這是為什么?有大佬能幫忙看看嘛?
STM32單片機源程序如下:
  1.   LL_ADC_EnableInternalRegulator(ADC3);//
  2.   //ADC3采樣通道等初始化
  3.   ADC_InitStruct.Resolution = LL_ADC_RESOLUTION_12B;//設置ADC分辨率(12位)
  4.   ADC_InitStruct.DataAlignment = LL_ADC_DATA_ALIGN_RIGHT;//設置ADC轉換數據對齊(右對齊)
  5.   ADC_InitStruct.LowPowerMode = LL_ADC_LP_MODE_NONE;
  6.   LL_ADC_Init(ADC3, &ADC_InitStruct);
  7.   
  8.   ADC_REG_InitStruct.TriggerSource = LL_ADC_REG_TRIG_SOFTWARE;
  9.   ADC_REG_InitStruct.SequencerLength = LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS;
  10.   ADC_REG_InitStruct.SequencerDiscont = LL_ADC_REG_SEQ_DISCONT_DISABLE;
  11.   ADC_REG_InitStruct.ContinuousMode = LL_ADC_REG_CONV_CONTINUOUS
  12.   ADC_REG_InitStruct.DMATransfer = LL_ADC_REG_DMA_TRANSFER_UNLIMITED;
  13.   ADC_REG_InitStruct.Overrun = LL_ADC_REG_OVR_DATA_OVERWRITTEN
  14.   LL_ADC_REG_Init(ADC3, &ADC_REG_InitStruct);
  15.   
  16.   
  17.   LL_ADC_SetGainCompensation(ADC3, 0)
  18.   LL_ADC_SetOverSamplingScope(ADC3, LL_ADC_OVS_DISABLE)
  19.   LL_ADC_DisableDeepPowerDown(ADC3)
  20.   
  21.   ADC_CommonInitStruct.CommonClock = LL_ADC_CLOCK_ASYNC_DIV4;
  22.   ADC_CommonInitStruct.Multimode = LL_ADC_MULTI_INDEPENDENT;
  23.   LL_ADC_CommonInit(__LL_ADC_COMMON_INSTANCE(ADC3), &ADC_CommonInitStruct);
  24.   LL_ADC_EnableIT_EOS(ADC3);
  25.   LL_ADC_DisableIT_EOC(ADC3);
  26.   /** Configure Regular Channel
  27.   */
  28.   LL_ADC_REG_SetSequencerRanks(ADC3, LL_ADC_REG_RANK_1, LL_ADC_CHANNEL_1;
  29.   LL_ADC_SetChannelSamplingTime(ADC3, LL_ADC_CHANNEL_1, LL_ADC_SAMPLINGTIME_92CYCLES_5);
  30.   LL_ADC_SetChannelSingleDiff(ADC3, LL_ADC_CHANNEL_1, LL_ADC_SINGLE_ENDED);
  31.   /** Configure Regular Channe5
  32.   */
  33.   LL_ADC_REG_SetSequencerRanks(ADC3, LL_ADC_REG_RANK_2, LL_ADC_CHANNEL_5);
  34.   LL_ADC_SetChannelSamplingTime(ADC3, LL_ADC_CHANNEL_5, LL_ADC_SAMPLINGTIME_92CYCLES_5);
  35.   LL_ADC_SetChannelSingleDiff(ADC3, LL_ADC_CHANNEL_5, LL_ADC_SINGLE_ENDED);
  36.   ActivateAdc3();//包含ADC3使能
  37.   
  38.   StartAdc3ConvPoll();
  39.   ADCSoftConversion();//添加調用此函數,ADC軟件觸發
復制代碼
這是輸入一個AI到10V的值:



這是兩個AI都到10V的值:


而且,AI1FilterResult和AI2FilterResult分別對應DMA內存數組中的第一、二個數據之后的處理之后的值,只有AI1FilterResult又值,而AI2FilterResult一直為0,這又是為什么啊?????

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:939710 發表于 2021-7-10 09:26 | 只看該作者
你沒有使能內存端地址增加吧,還有設置內存段數據長度
回復

使用道具 舉報

板凳
ID:837826 發表于 2021-7-10 09:33 | 只看該作者
lishengaha 發表于 2021-7-10 09:26
你沒有使能內存端地址增加吧,還有設置內存段數據長度

DMA的配置都是正常的,主要是ADC兩個通道采樣兩個AI的值是會疊加
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 另类 综合 日韩 欧美 亚洲 | 欧美中文一区 | 亚洲精品久久久久中文字幕二区 | 自拍亚洲 | 在线中文视频 | 亚洲资源在线 | 国产激情视频 | 亚洲国产成人精品女人 | 天天操 夜夜操 | 亚洲欧美在线视频 | 天天操夜夜操 | 毛片视频免费观看 | 视频一区在线观看 | 免费av直接看 | 国产美女在线精品免费 | 99亚洲精品 | 中文字幕av一区二区三区 | 精品在线播放 | 中文字幕日韩欧美一区二区三区 | 国产日韩在线观看一区 | 国产 欧美 日韩 一区 | 国产一级视频在线观看 | 亚洲免费观看视频 | 成人午夜影院 | 精品久久精品 | 日韩精品成人网 | 久久r免费视频 | 91在线精品一区二区 | 久草视频在线播放 | 亚洲精品乱码久久久久久按摩观 | 久久不卡区 | www国产成人免费观看视频,深夜成人网 | 妖精视频一区二区三区 | 超碰男人天堂 | 久久网站黄 | 久久人体视频 | 日韩在线一区二区三区 | 男女免费网站 | 亚洲视频免费在线播放 | 亚洲a人| a级大片免费观看 |