在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32的ADC1采集多條通道 可以不使用DMA功能嗎?

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-14 14:46 ? 次閱讀

類似的問題

為什么我采集5條通道的電壓,而采集到的值卻都是第一條的呢?

我什么時候需要使用DMA功能?

關于ADC的一些知識

STM32ADC是一種12位逐次逼近型的模擬數字轉換器。它有多達18條通道,可測量16個外部和2個內部信號源。

各通道的A/D轉換可以單次、連續、掃描或間斷模式執行。 ADC的結果可以左對齊或右對齊方式存儲在16位數據寄存器ADC_DR中。

其實就是說,一個ADC,可檢測18條通道,我們外接的只有16條。而結果只保存在一個寄存器ADC_DR中。

要使用ADC1采集多條通道,那么就需要對采集的通道進行分組排序。STM32的ADC可以把轉換組織成兩組:規則組和注入組。

假如我們采集的通道按照如下順序完成轉換:通道3、通道8、通道2,則需要軟件對其配置:

ADC_RegularChannelConfig(ADC1,ADC_Channel_3,1, ADC_SampleTime_55Cycles5);

ADC_RegularChannelConfig(ADC1,ADC_Channel_8,2, ADC_SampleTime_55Cycles5);

ADC_RegularChannelConfig(ADC1,ADC_Channel_2,3, ADC_SampleTime_55Cycles5);

使用DMA方式

從上面的描述中知道,ADC轉換的結果只能保存在ADC_DR中。因為規則通道轉換的值儲存在一個僅有的數據寄存器中,所以當轉換多個規則通道時需要使用DMA,這可以避免丟失已經存儲在ADC_DR寄存器中的數據。

只有在規則通道的轉換結束時才產生DMA請求,并將轉換的數據從ADC_DR寄存器傳輸到用戶指定的目的地址。

也就是說,如不使用DMA,我們采用規則轉換,中間有些存儲在ADC_DR寄存器中的數據可能被(下一條通道采集的數據)覆蓋掉。這就是有人說的“采集到的數據不對應其通道的值”的原因。

同理,需要這種規則轉換多條通道,就需要使用DMA功能才能完成。

不使用DMA方式

看了上面使用DMA的情況,相信都應該明白:如果使用規則轉換,就最好使用DMA功能。

不使用DMA方式,就需要使用非常奇葩的處理方式:單通道單次轉換方式,需要切換通道,不然就會像上面說的,采集不到對應通道的數據。

STM32的ADC功能非常強大,感興趣的朋友可深入理解一下。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2272

    文章

    10924

    瀏覽量

    357599
  • dma
    dma
    +關注

    關注

    3

    文章

    566

    瀏覽量

    100963
  • ADC1
    +關注

    關注

    0

    文章

    3

    瀏覽量

    8339
收藏 人收藏

    評論

    相關推薦

    STM32F103VCT6 ADCDMA的速度為什么不一致?

    最近調試STM32F103VCT6,發現一個很奇怪的問題。現在采用ADC1ADC3,同時采集兩路波形,采集速率都配到了1.5時鐘,大約1.
    發表于 05-16 07:12

    STM32F334 ADC1ADC2同步采樣,有時會出現采ADC1ADC2所有的通道采集數據都一樣的情況為什么?

    STM32F334 ADC1ADC2同步采樣,有時會出現采ADC1ADC2所有的通道
    發表于 05-15 08:15

    STM32F103如何讓ADC1每個通道轉換64次后換下一個通道在轉換64次?

    (64次)通過DMA傳輸到數組。 然后轉到ADC1的第二個通道在采樣一個周期的交流電壓信號(64次)通過DMA傳輸到數組。 往后以此類推。 不知哪位大神能幫忙給個思路,這個問題我困
    發表于 05-06 08:43

    STM8L151 ADC采用DMA通道連續采集遇到通道數據滾動怎么解決?

    STM8L151 ADC 采用DMA8通道連續采集,通過ST_LINK仿真發現:通道數據滾動問題,比如第一
    發表于 04-30 08:22

    stm32 adc1和串口2同時使用DMA出錯的原因?

    stm32f103r8t6adc1使用dma方式采集數據串口2使用dma方式收發串口發送沒有問題,串口接收只要adc1使用
    發表于 04-22 08:08

    調試STM32adc通道DMA傳輸時,DMA傳輸后就出現值變了的原因?

    這次在調試STM32adc通道DMA傳輸時出現了一個很大的問題。 直接去讀取ADC的DR是沒問題的,但是過來
    發表于 04-22 06:03

    stm32 ADC定時喚醒采集數據,工作一段時間adc值不變了是為什么?

    */ ADC_InitStructure.ADC_NbrOfChannel = 2;/*設定要轉換的 AD 通道數目*/ ADC_Init(ADC1,
    發表于 04-11 07:22

    請問STM32G4的ADC1,ADC2,ADC3,ADC4可以同時工作在獨立模式嗎?

    咨詢下各位: STM32G4的ADC1,ADC2,ADC3,ADC4可以同時工作在獨立模式嗎?每
    發表于 04-10 06:01

    stm32F103中ADC通道轉換使用DMA,串口調試助手沒有數據傳輸的原因?

    stm32F103中ADC通道轉換使用DMA,串口調試助手沒有數據傳輸,大佬可以幫我看看我的代碼有什么問題嗎? main.c #inclu
    發表于 04-08 07:17

    stm32cubemx建立多通道ADC+DMA,想使用DMA中斷要怎么實現?

    各位大神: 我在用stm32 cubemx建立ADC+DMA通道,想使用DMA中斷,百度了個設置在DMA里增加
    發表于 04-02 07:14

    STM32G070 ADC配置檢測3個通道DMA傳輸長度為1,OVR標志不會置1為什么?

    ADC配置檢測3個通道DMA傳輸長度為1,OVR標志不會置1,為什么? 不知道自己哪里理解錯誤了,求指教 if (HAL_
    發表于 03-29 07:32

    STM32H750VBT6 ADC1,ADC2,ADC3,加DMA為什么ADC3回調函數不能正常工作?

    STM32H750VBT6ADC1,ADC2,ADC3,加DMA為什么ADC3回調函數不能正常工作 AD
    發表于 03-29 07:23

    關于STM32G474 ADC通道數據采集遇到的問題求解

    STM32G474 ADC時鐘:168MHz/4=42MHz 分辨率 12bit 單端輸入 ADC1 采集6通道數據 采樣時間6.5cyc
    發表于 03-14 08:11

    STM32L496VG多通道ADC采樣有串擾的原因?

    STM32L496VGADC1,ADC2,ADC3通道同時采集ADC1,
    發表于 03-13 08:03

    使用STM32ADC 4通道電流采樣,采樣結果會有差異怎么解決?

    使用STM32ADC電流采樣,4通道,發現當只有一個通道輸入電流和四個通道都有電流輸入的時候,采樣結果會有差異。比如
    發表于 03-07 06:50
    主站蜘蛛池模板: 成人看的一级毛片 | 一级做性色a爱片久久片 | 人人爽天天爽夜夜爽qc | 天天摸日日 | 欧美特级黄 | 在线观看国产久青草 | 孩交啪啪网址 | 四虎影院在线观看免费 | 激情综合激情五月 | 特黄特色大片免费视频播放 | 欧美成人看片一区二区三区 | 手机看片福利1024 | 亚洲高清免费视频 | 日本电影在线观看黄 | 色婷婷电影 | 手机天堂网| 色噜噜色偷偷 | 国产稀缺精品盗摄盗拍 | 在线看片成人免费视频 | 久青草国产手机视频免费观看 | 亚洲一区二区影视 | 奇米影视亚洲春色77777 | h国产在线观看 | 亚洲人成www在线播放 | 业余性自由色xxxx视频 | 又粗又硬又爽又黄毛片 | 免费的国语一级淫片 | 色综合一区二区三区 | 高黄网站 | 色噜噜成人综合网站 | 欧美成人免费夜夜黄啪啪 | 正在播放欧美 | 日韩一级欧美一级在线观看 | 久久亚洲国产成人精品性色 | 特黄特色大片免费播放器9 特黄特色大片免费视频播放 | 欧美大色网 | 天天做天天爱天天爽天天综合 | 狂捣猛撞侍卫攻双性王爷受 | 在线亚洲成人 | 在线一级毛片 | 欧美很很干 |