99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32F030芯片內(nèi)部ADC結(jié)果挪位的問題分析及解決辦法

茶話MCU ? 來源:茶話MCU ? 2024-01-05 10:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

有人使用STM32F030芯片內(nèi)部ADC的CH0、CH3、CH5共3個(gè)通道,單次掃描轉(zhuǎn)換后通過DMA將結(jié)果放在一個(gè)數(shù)組,。ADC轉(zhuǎn)換多通道的掃描方向是Forward,即將所選擇通道按照從小編號(hào)往大編號(hào)通道依次轉(zhuǎn)換。

在ADC的DMA傳輸完成中斷里改變選擇的通道序列,將原來的CH0、CH3、CH5改成CH1、CH3、CH5后,出現(xiàn)不同通道數(shù)據(jù)竄位或挪位情況。正常轉(zhuǎn)換后的值應(yīng)在20以內(nèi),卻出現(xiàn)了1480左右的數(shù)值。

為什么會(huì)出現(xiàn)這種情況?是不是選定了一個(gè)轉(zhuǎn)換序列后就不可以再改變轉(zhuǎn)換序列?

簡(jiǎn)單點(diǎn)說,上面要表達(dá)的就是當(dāng)更換ADC通道形成新的轉(zhuǎn)換序列后,轉(zhuǎn)換結(jié)果與預(yù)期不符,出現(xiàn)異常。

基于上面情況,我找到STM32F070RB 開發(fā)板做驗(yàn)證測(cè)試,嘗試找找原因。也選用3個(gè)通道來驗(yàn)證。我這里先對(duì)CH14、CH15和CH17【內(nèi)部與Vrefint電壓相連】做ADC,其中CH14接地,CH15接VDD。轉(zhuǎn)換結(jié)果使用DMA搬運(yùn)到內(nèi)存數(shù)組。

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

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

當(dāng)上一個(gè)序列轉(zhuǎn)換完成后,我將轉(zhuǎn)換序列改成CH13,CH15,CH17,即將前面的CH14換成CH13,該通道未外接特定信號(hào),處于浮空狀態(tài)【轉(zhuǎn)換結(jié)果可能不定】。然后,開啟第2輪轉(zhuǎn)換,之后結(jié)束測(cè)試。

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

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

兩次的轉(zhuǎn)換結(jié)果如下面截圖所示:

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

第一次的3個(gè)通道的轉(zhuǎn)換結(jié)果符合預(yù)期,是正確的。見上圖中數(shù)組pData1【】的結(jié)果。

CH14接地,CH15接VDD,CH17接1.2v的Vrefint電壓信號(hào)。

但第二次的3個(gè)通道的轉(zhuǎn)換結(jié)果跟預(yù)期就不一致了。我希望得到的是CH13、CH15和CH17的轉(zhuǎn)換結(jié)果,可現(xiàn)在看到的結(jié)果顯然依次是CH13、CH14和CH15的,不見CH17的結(jié)果。

數(shù)據(jù)跟期望的不符,在內(nèi)存中的位置也不對(duì),出現(xiàn)了位置移動(dòng)。另外,按理說CH14不應(yīng)有轉(zhuǎn)換結(jié)果出來,它明顯出結(jié)果了。

難道說,我的第二次轉(zhuǎn)換序列設(shè)置跟實(shí)際的轉(zhuǎn)換序列不一致?現(xiàn)在感覺沒看到CH17的結(jié)果,會(huì)不會(huì)已經(jīng)出來了,只是跟我的DMA傳輸長(zhǎng)度及數(shù)組長(zhǎng)度設(shè)置有關(guān)?目前設(shè)置的長(zhǎng)度為3,如果我把數(shù)組長(zhǎng)度改長(zhǎng)點(diǎn),比方5吧??纯唇Y(jié)果如何?

不出所料,看來第二次ADC轉(zhuǎn)換的果真是4個(gè)通道的。見下圖的pData2的結(jié)果。

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

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

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

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

我們不妨借助調(diào)試工具看看ADC通道選擇寄存器內(nèi)容來證實(shí)當(dāng)前的猜測(cè)。運(yùn)行程序后借助調(diào)試環(huán)境可看到下面的ADC通道選擇器的結(jié)果。

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

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

那么,如何讓第二次ADC轉(zhuǎn)換只使用CH13,CH15,CH17三個(gè)通道呢?

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

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

再做調(diào)試運(yùn)行,這次結(jié)果就正確了。見下面截圖:

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

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

順便提下,CH13是代碼里另外加進(jìn)去的,使用CubeMx配置的話,記得將CH13的復(fù)用管腳事先配置成Analog模式,這樣讓CubeMx創(chuàng)建工程時(shí)自動(dòng)幫我們將該腳的GPIO復(fù)用功能配置好。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1279

    瀏覽量

    53854
  • 電壓信號(hào)
    +關(guān)注

    關(guān)注

    0

    文章

    214

    瀏覽量

    13780
  • VDD
    VDD
    +關(guān)注

    關(guān)注

    1

    文章

    316

    瀏覽量

    35003
  • ADC芯片
    +關(guān)注

    關(guān)注

    3

    文章

    82

    瀏覽量

    20667
  • STM32F030
    +關(guān)注

    關(guān)注

    1

    文章

    33

    瀏覽量

    7016

原文標(biāo)題:STM32F0 ADC結(jié)果挪位的問題分析及解決

文章出處:【微信號(hào):stmcu832,微信公眾號(hào):茶話MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用STM32F030時(shí)沒使用內(nèi)部晶振怎么設(shè)置,使用內(nèi)部晶振時(shí)延時(shí)函數(shù)怎么寫?

    STM32F030內(nèi)部晶振怎么設(shè)置,內(nèi)部晶振是延時(shí)函數(shù)怎么設(shè)置 使用STM32F030時(shí)沒使用內(nèi)部晶振怎么設(shè)置,使用
    發(fā)表于 03-07 08:13

    STM32F030內(nèi)部晶振怎么設(shè)置,內(nèi)部晶振是延時(shí)函數(shù)怎么設(shè)置?

    STM32F030內(nèi)部晶振怎么設(shè)置,內(nèi)部晶振是延時(shí)函數(shù)怎么設(shè)置 使用STM32F030時(shí)沒使用內(nèi)部晶振怎么設(shè)置,使用
    發(fā)表于 04-23 07:45

    STM32F030 ADC結(jié)果為什么受串口RX電平影響

    用的CH340G的串口轉(zhuǎn)USB板,連接STM32F030,3.3V供電,串口打印ADC結(jié)果。當(dāng)串口芯片選用3.3V電平時(shí),AD結(jié)果正常;當(dāng)選
    發(fā)表于 11-02 08:50

    STM32f030內(nèi)部的FLASH擦寫時(shí)間是多少

    STM32f030內(nèi)部的FLASH擦寫時(shí)間是多少?STM32f030內(nèi)部的FLASH擦寫次數(shù)是多少?STM32f030
    發(fā)表于 10-22 06:23

    如何去使用STM32F030內(nèi)部時(shí)鐘呢

    如何去使用STM32F030內(nèi)部時(shí)鐘呢?如何去使用STM32F030外的部時(shí)鐘呢?
    發(fā)表于 10-26 06:58

    造成stm32F030ADC異常的原因是什么

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

    STM32F030數(shù)據(jù)手冊(cè)

    本參考手冊(cè)向應(yīng)用程序開發(fā)人員提供關(guān)于如何使用STM32F030 微控制器的內(nèi)存和外設(shè)所涉 及的信息。
    發(fā)表于 11-10 17:42 ?335次下載

    STM32F030的定時(shí)器PWM使用設(shè)置與ADC的dma代碼

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

    stm32f030原理圖

    stm32f030原理圖
    發(fā)表于 10-09 17:16 ?288次下載

    STM32F030的終結(jié)者HC32F030 橫空出世

    STM32F030的終結(jié)者HC32F030?橫空出世STM32F030之前以其穩(wěn)定的性能及相對(duì)低廉的價(jià)格一直在客戶的產(chǎn)品開發(fā)使用中占有很大的比重,近期由于產(chǎn)能問題導(dǎo)致該芯片的供貨一直不
    發(fā)表于 03-22 13:55 ?1723次閱讀

    STM32F030新建工程模板資料免費(fèi)下載

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

    stm32f030stm32f103功能差異

    stm32f030stm32f103功能差異主要表現(xiàn)在哪?
    的頭像 發(fā)表于 07-22 09:35 ?2.3w次閱讀

    STM32F030低溫下RTC不工作

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

    STM32F030在低溫下無法啟動(dòng)

    STM32F030在低溫下無法啟動(dòng)
    的頭像 發(fā)表于 09-27 16:19 ?2115次閱讀
    <b class='flag-5'>STM32F030</b>在低溫下無法啟動(dòng)

    STM32F030在低溫下無法啟動(dòng)

    電子發(fā)燒友網(wǎng)站提供《STM32F030在低溫下無法啟動(dòng).pdf》資料免費(fèi)下載
    發(fā)表于 09-20 10:23 ?3次下載
    <b class='flag-5'>STM32F030</b>在低溫下無法啟動(dòng)