那曲檬骨新材料有限公司

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

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

3天內不再提示

STM32F030芯片內部ADC結果挪位的問題分析及解決辦法

茶話MCU ? 來源:茶話MCU ? 2024-01-05 10:14 ? 次閱讀

有人使用STM32F030芯片內部ADC的CH0、CH3、CH5共3個通道,單次掃描轉換后通過DMA將結果放在一個數組,。ADC轉換多通道的掃描方向是Forward,即將所選擇通道按照從小編號往大編號通道依次轉換。

在ADC的DMA傳輸完成中斷里改變選擇的通道序列,將原來的CH0、CH3、CH5改成CH1、CH3、CH5后,出現不同通道數據竄位或挪位情況。正常轉換后的值應在20以內,卻出現了1480左右的數值。

為什么會出現這種情況?是不是選定了一個轉換序列后就不可以再改變轉換序列?

簡單點說,上面要表達的就是當更換ADC通道形成新的轉換序列后,轉換結果與預期不符,出現異常。

基于上面情況,我找到STM32F070RB 開發板做驗證測試,嘗試找找原因。也選用3個通道來驗證。我這里先對CH14、CH15和CH17【內部與Vrefint電壓相連】做ADC,其中CH14接地,CH15接VDD。轉換結果使用DMA搬運到內存數組。

2f460cd6-aafd-11ee-8b88-92fbcf53809c.png

2f5ae5d4-aafd-11ee-8b88-92fbcf53809c.png

當上一個序列轉換完成后,我將轉換序列改成CH13,CH15,CH17,即將前面的CH14換成CH13,該通道未外接特定信號,處于浮空狀態【轉換結果可能不定】。然后,開啟第2輪轉換,之后結束測試。

我剛開始的用戶測試代碼是下面的這些。數組pData1[]和pData2[]分別存放前后兩次的轉換結果。用Delay(20)延時代替等待轉換完成,反正這里只是做下驗證測試而已。

2f7d6244-aafd-11ee-8b88-92fbcf53809c.png

兩次的轉換結果如下面截圖所示:

2f9125c2-aafd-11ee-8b88-92fbcf53809c.png

第一次的3個通道的轉換結果符合預期,是正確的。見上圖中數組pData1【】的結果。

CH14接地,CH15接VDD,CH17接1.2v的Vrefint電壓信號。

但第二次的3個通道的轉換結果跟預期就不一致了。我希望得到的是CH13、CH15和CH17的轉換結果,可現在看到的結果顯然依次是CH13、CH14和CH15的,不見CH17的結果。

數據跟期望的不符,在內存中的位置也不對,出現了位置移動。另外,按理說CH14不應有轉換結果出來,它明顯出結果了。

難道說,我的第二次轉換序列設置跟實際的轉換序列不一致?現在感覺沒看到CH17的結果,會不會已經出來了,只是跟我的DMA傳輸長度及數組長度設置有關?目前設置的長度為3,如果我把數組長度改長點,比方5吧。看看結果如何?

不出所料,看來第二次ADC轉換的果真是4個通道的。見下圖的pData2的結果。

2fa88a78-aafd-11ee-8b88-92fbcf53809c.png

這進一步證實了第二次的ADC配置有問題!再回頭看看第2次ADC初始化的代碼:

2fba5348-aafd-11ee-8b88-92fbcf53809c.png

從代碼上看似乎并沒有啥問題。相比第一次配置,只是把CH14換成了CH13,難道說我的第2次ADC配置增加CH13的同時CH14并沒有被替換掉,而是依然存在于新的轉換序列?

我們不妨借助調試工具看看ADC通道選擇寄存器內容來證實當前的猜測。運行程序后借助調試環境可看到下面的ADC通道選擇器的結果。

2fc42f80-aafd-11ee-8b88-92fbcf53809c.png

的確,第2次ADC配置后,轉換序列里是4個通道而不是3個通道,即CH14通道依然存在于轉換序列。這跟當前的輸出結果就非常吻合了,只是不符合當前需求而已。

那么,如何讓第二次ADC轉換只使用CH13,CH15,CH17三個通道呢?

我們可以這樣操作,在做第2次ADC轉換序列初始化前,先將ADC做下復位。將前面代碼稍加改動,注意下面紅色代碼行。

2ff6ac80-aafd-11ee-8b88-92fbcf53809c.png

再做調試運行,這次結果就正確了。見下面截圖:

30007ae4-aafd-11ee-8b88-92fbcf53809c.png

看來,問題出在ADC的配置方面,ADC轉換序列當然可以修改,只是要按照正確的步驟操作才行。

順便提下,CH13是代碼里另外加進去的,使用CubeMx配置的話,記得將CH13的復用管腳事先配置成Analog模式,這樣讓CubeMx創建工程時自動幫我們將該腳的GPIO復用功能配置好。






審核編輯:劉清

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

    關注

    16

    文章

    1213

    瀏覽量

    52193
  • 電壓信號
    +關注

    關注

    0

    文章

    214

    瀏覽量

    13443
  • VDD
    VDD
    +關注

    關注

    1

    文章

    312

    瀏覽量

    33322
  • ADC芯片
    +關注

    關注

    3

    文章

    78

    瀏覽量

    20352
  • STM32F030
    +關注

    關注

    1

    文章

    33

    瀏覽量

    6680

原文標題:STM32F0 ADC結果挪位的問題分析及解決

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STM32F030 ADC結果為什么受串口RX電平影響

    用的CH340G的串口轉USB板,連接STM32F030,3.3V供電,串口打印ADC結果。當串口芯片選用3.3V電平時,AD結果正常;當選
    發表于 11-02 08:50

    使用STM32F030多路ADC采樣遇到了哪些問題

    使用STM32F030多路ADC采樣遇到了哪些問題?怎樣去解決這些問題呢?
    發表于 10-21 09:29

    STM32f030內部的FLASH擦寫時間是多少

    STM32f030內部的FLASH擦寫時間是多少?STM32f030內部的FLASH擦寫次數是多少?STM32f030
    發表于 10-22 06:23

    如何去使用STM32F030內部時鐘呢

    如何去使用STM32F030內部時鐘呢?如何去使用STM32F030外的部時鐘呢?
    發表于 10-26 06:58

    造成stm32F030ADC異常的原因是什么

    造成stm32F030ADC異常的原因是什么?stm32F030ADC異常該怎樣辦呢?
    發表于 02-10 06:52

    STM32F030數據手冊

    本參考手冊向應用程序開發人員提供關于如何使用STM32F030 微控制器的內存和外設所涉 及的信息。
    發表于 11-10 17:42 ?334次下載

    STM32F030的定時器PWM使用設置與ADC的dma代碼

    里面是STM32F030的定時器PWM使用設置與ADC的dma代碼
    發表于 03-21 15:29 ?152次下載

    stm32f030原理圖

    stm32f030原理圖
    發表于 10-09 17:16 ?287次下載

    STM32F030的終結者HC32F030 橫空出世

    STM32F030的終結者HC32F030?橫空出世STM32F030之前以其穩定的性能及相對低廉的價格一直在客戶的產品開發使用中占有很大的比重,近期由于產能問題導致該芯片的供貨一直不
    發表于 03-22 13:55 ?1562次閱讀

    STM32F030新建工程模板資料免費下載

    本文檔的主要內容詳細介紹的是STM32F030新建工程模板資料免費下載 ,方便新建STM32F030所用,省略配置步驟。
    發表于 08-05 08:00 ?83次下載
    <b class='flag-5'>STM32F030</b>新建工程模板資料免費下載

    STM32F030系列微控制器的數據手冊免費下載

    STM32F030系列微控制器的數據手冊免費下載
    發表于 03-31 08:00 ?46次下載
    <b class='flag-5'>STM32F030</b>系列微控制器的數據手冊免費下載

    stm32f030stm32f103功能差異

    stm32f030stm32f103功能差異主要表現在哪?
    的頭像 發表于 07-22 09:35 ?2.2w次閱讀

    STM32F030低溫下RTC不工作

    STM32F030低溫下RTC不工作
    發表于 12-09 09:21 ?19次下載
    <b class='flag-5'>STM32F030</b>低溫下RTC不工作

    STM32F030在低溫下無法啟動

    STM32F030在低溫下無法啟動
    的頭像 發表于 09-27 16:19 ?1748次閱讀
    <b class='flag-5'>STM32F030</b>在低溫下無法啟動

    STM32F030在低溫下無法啟動

    電子發燒友網站提供《STM32F030在低溫下無法啟動.pdf》資料免費下載
    發表于 09-20 10:23 ?3次下載
    <b class='flag-5'>STM32F030</b>在低溫下無法啟動
    百家乐西园二手房| 海王星百家乐官网技巧| 财神百家乐官网娱乐城| bet9全讯网查询| 在线赌博网站| 常山县| 皇冠百家乐官网皇冠网| 百家乐官网游戏机的玩法| 百家乐官网视频百家乐官网| 百家乐官网单双打法| 百家乐官网是不是有技巧| 百家乐官网赢家| 博彩百家乐官网后一预测软件| 百家乐官网图形的秘密破解| 百家乐官网平点| 百家乐投注组合| 百家乐保单机解码| 大发888备用| 尊龙代理| 百家乐官网投注注技巧| 百家乐官网网上真钱娱乐平台| 百家乐官网平游戏| 中国百家乐技巧| 大发888娱乐场官网官方下载| 足球改单平| 什么是百家乐官网平注法| 百家乐官网筹码14克| 澳门百家乐出千吗| 大发888优惠代码| 利赢百家乐官网现金网| 缅甸百家乐官网赌城| 百家乐扑克筹码| 大发888主页| 湘乡市| 网上百家乐官网骗钱| 百家乐那个平台好| 棋牌小游戏| 百家乐官网玩法百科| 总统百家乐官网的玩法技巧和规则| 百家乐网上投注作弊| 世界顶级赌场排名|