日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

對(duì)STM32內(nèi)部FLASH編程時(shí)遇到的ADC異常問(wèn)題

茶話MCU ? 來(lái)源:ST MCU 信息交流 ? 2020-05-14 09:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

STM32用戶使用STM32F407芯片開發(fā)產(chǎn)品。用到內(nèi)部3個(gè)ADC,其中ADC1與ADC2工作在ADC雙模式,ADC3獨(dú)立工作。運(yùn)行代碼時(shí)給FLASH開鎖編程后,發(fā)現(xiàn)ADC3不工作了(其DR數(shù)據(jù)寄存器似乎不更新了,倒是用來(lái)觸發(fā)ADC的定時(shí)器TIM2依然正常),F(xiàn)lash編程前后ADC3配置寄存器CR1、CR2沒(méi)有發(fā)生改變。如果重新配置ADC3后就能正常工作。

從問(wèn)題現(xiàn)象來(lái)看,初步感覺(jué)跟flash編程有些關(guān)系。

經(jīng)了解,客戶的確做了flash編程,有一部分參數(shù)需要存放在FLASH內(nèi)。他的ADC3是由TIM2觸發(fā)的,ADC3的轉(zhuǎn)換結(jié)果是通過(guò)DMA搬運(yùn)。

鑒于此,我這邊便提醒他,如果不是基于雙BANK條件,在flash編程時(shí)CPU是堵塞的,此時(shí)若發(fā)生中斷不會(huì)得到響應(yīng),讓他注意這點(diǎn)及因此可能導(dǎo)致的問(wèn)題。

客戶進(jìn)一步反饋確認(rèn):

1:通ADC結(jié)果過(guò)DMA讀取,并非中斷方式獲??;

2:FLASH編程過(guò)程中禁止了所有中斷;

3:奇怪的是ADC3改為由軟件觸發(fā)則沒(méi)有異?,F(xiàn)象。用來(lái)觸發(fā)ADC的定時(shí)器一直計(jì)數(shù)正常,并且只要重新配置ADC3(無(wú)須對(duì)觸發(fā)定時(shí)器重新配置)也能恢復(fù)它的正常工作。

先說(shuō)下客戶提到的在flash編程時(shí)將總中斷關(guān)閉動(dòng)作。其實(shí),從效果來(lái)講,這個(gè)關(guān)中斷沒(méi)啥用,反正在Flash編程過(guò)程中即使有中斷發(fā)生CPU也不會(huì)給予響應(yīng)。

結(jié)合其反饋,軟件觸發(fā)和定時(shí)器觸發(fā)ADC有個(gè)明顯差別,就在于定時(shí)器的觸發(fā)對(duì)于我們用戶來(lái)講往往存在些未知性或不確定性,即不知它具體的觸發(fā)時(shí)間點(diǎn)??蛻粢恢睆?qiáng)調(diào)TIM工作保持正常,對(duì)ADC不能被觸發(fā)感到奇怪。

整體上,通過(guò)問(wèn)題癥狀結(jié)合經(jīng)驗(yàn)初步判斷是ADC3發(fā)生溢出事件了,建議客戶做進(jìn)一步檢查確認(rèn)。

后來(lái),他反饋的確是發(fā)生了ADC溢出事件。在FLASH編程前暫停TIM2觸發(fā)就可以避免溢出發(fā)生,不再發(fā)生ADC功能異常。

按理說(shuō)他現(xiàn)在ADC結(jié)果是DMA傳輸,TIM觸發(fā)DMA時(shí)應(yīng)該可以及時(shí)讀取數(shù)據(jù)的,怎么還發(fā)生了溢出呢?那就有種可能,在某個(gè)時(shí)刻,當(dāng)ADC被TIM觸發(fā)完成轉(zhuǎn)換后,這時(shí)的DMA還沒(méi)有準(zhǔn)備好,導(dǎo)致ADC的結(jié)果沒(méi)有被及時(shí)取走。

那什么原因會(huì)導(dǎo)致ADC結(jié)果不能被及時(shí)取走呢?若DMA配置在非循環(huán)模式,當(dāng)DMA傳輸完成一輪數(shù)據(jù)后,DMA將不再繼續(xù)實(shí)施數(shù)據(jù)傳輸,這時(shí)CPU往往還會(huì)進(jìn)入DMA中斷服務(wù)程序做些必要處理或者為下輪傳輸做準(zhǔn)備。若這個(gè)DMA傳輸完成中斷發(fā)生在FLASH編程期間,這就可能導(dǎo)致問(wèn)題。由于該期間它本身不能得到響應(yīng),下一輪的DMA傳輸就沒(méi)法被開啟。但此時(shí)的TIM還是依然如故地觸發(fā)ADC,其結(jié)果若不能被及時(shí)取走,導(dǎo)致溢出就再自然不過(guò)了。

當(dāng)ADC發(fā)生溢出后,如果沒(méi)有對(duì)溢出位做清零,后續(xù)的ADC轉(zhuǎn)換動(dòng)作是不會(huì)觸發(fā)DMA的。具體到本案例,嚴(yán)格地講,后來(lái)客戶覺(jué)得讀不到ADC的更新數(shù)據(jù),不是因?yàn)锳DC不工作,其實(shí)它一直被定時(shí)器觸發(fā)轉(zhuǎn)換,只是因?yàn)榘l(fā)生了溢出,沒(méi)法正常觸發(fā)DMA傳輸,進(jìn)而無(wú)法實(shí)現(xiàn)ADC結(jié)果的搬運(yùn)。

所以,在上述應(yīng)用情況下,在做flash編程前可以先行關(guān)閉定時(shí)器,之后再打開?;蛘咴贒MA傳輸完成的中斷服務(wù)程序里,在重新開啟DMA之前,先暫時(shí)關(guān)閉定時(shí)器,對(duì)并ADC的溢出及出錯(cuò)做檢測(cè)處理,之后再開啟定時(shí)器和DMA傳輸。

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

    關(guān)注

    31

    文章

    5621

    瀏覽量

    130461
  • STM32
    +關(guān)注

    關(guān)注

    2313

    文章

    11196

    瀏覽量

    374772
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3375

    瀏覽量

    124712

原文標(biāo)題:對(duì)STM32內(nèi)部FLASH編程時(shí)遇到的ADC異常問(wèn)題

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    國(guó)產(chǎn)SPI NOR Flash接口閃存介紹

    的存儲(chǔ)架構(gòu),內(nèi)部陣列由多個(gè)256字節(jié)的可編程頁(yè)面組成,支持頁(yè)編程、扇區(qū)擦除、塊擦除及整片擦除等多種操作模式,為用戶帶來(lái)高度靈活的存儲(chǔ)管理體驗(yàn)。
    的頭像 發(fā)表于 12-26 11:51 ?694次閱讀

    studio有沒(méi)有通過(guò)更改下載算法,同時(shí)下載到內(nèi)部flash和外部flash?

    我現(xiàn)在使用的stm32h750,內(nèi)部flash很小,需要使用外部qspiflash來(lái)儲(chǔ)存程序。 studio可以像mdk一樣設(shè)置兩個(gè)下載算法嗎? 這樣才能一個(gè)程序使用兩個(gè)flash不用
    發(fā)表于 09-26 07:04

    STM32C011開發(fā)(3)----Flash操作

    STM32C011 系列微控制器內(nèi)置 Flash 存儲(chǔ)器,支持程序存儲(chǔ)與數(shù)據(jù)保存,具備頁(yè)面擦除、雙字寫入、讀寫保護(hù)等功能。本文將簡(jiǎn)要介紹 STM32C011 的 Flash 結(jié)構(gòu)與特性
    的頭像 發(fā)表于 09-18 16:48 ?5335次閱讀
    <b class='flag-5'>STM32</b>C011開發(fā)(3)----<b class='flag-5'>Flash</b>操作

    STM32H743以太網(wǎng)驅(qū)動(dòng)移植異常怎么解決?

    單片機(jī):STM32H743II PHY:LAN8720 開發(fā)環(huán)境:Keil 移植以太網(wǎng)驅(qū)動(dòng)時(shí),遇到異常。 使用的drv_eth.c drv_eth.h的版本信息如下圖所示, 編譯運(yùn)行之后,顯示的
    發(fā)表于 09-10 07:52

    如何使用ADC內(nèi)部參考電壓?

    如何使用ADC內(nèi)部參考電壓?
    發(fā)表于 08-27 07:43

    請(qǐng)問(wèn)STM32內(nèi)部Flash操作是不是優(yōu)先級(jí)最高?

    STM32內(nèi)部Flash操作是不是優(yōu)先級(jí)最高?目前在內(nèi)部Flash的單獨(dú)一頁(yè)存儲(chǔ)了數(shù)據(jù),發(fā)現(xiàn)在進(jìn)行頁(yè)擦除的時(shí)候正常工作的定時(shí)器中斷無(wú)法進(jìn)入
    發(fā)表于 08-13 07:03

    FLASH燒寫/編程白皮書

    白皮書:如何燒寫Flash——不同場(chǎng)景不同需求下的選擇認(rèn)識(shí)Flash?NAND vs. NOR如何燒寫/編程不同方案比較
    發(fā)表于 07-28 16:05 ?0次下載

    STM32F103RET6 FLASH擦除失敗的原因?怎么解決?

    芯片不掉電,再進(jìn)行擦除會(huì)出現(xiàn)擦不掉的情況,但是FLASH->SR寄存器未起任何異常狀態(tài),只有一個(gè)EOP置位。如果只是擦除->寫入->擦除,中間不進(jìn)行讀的操作
    發(fā)表于 07-10 06:40

    第二十九章 讀寫內(nèi)部FLASH

    本文介紹了W55MH32內(nèi)部FLASH,其含主存儲(chǔ)、系統(tǒng)存儲(chǔ)等,可存儲(chǔ)代碼及掉電保存數(shù)據(jù)。讀寫需解鎖、擦除頁(yè)等步驟,標(biāo)準(zhǔn)庫(kù)提供相關(guān)函數(shù)。還展示了擦除編程測(cè)試及模擬EEPROM讀寫的實(shí)驗(yàn)。
    的頭像 發(fā)表于 06-20 14:09 ?1400次閱讀
    第二十九章 讀寫<b class='flag-5'>內(nèi)部</b><b class='flag-5'>FLASH</b>

    STM32多通道FFT運(yùn)算異常的原因?怎么解決?

    問(wèn)題報(bào)告:STM32多通道FFT運(yùn)算異常 報(bào)告人:XXX日期:2025年X月X日硬件平臺(tái):STM32F407VGT6開發(fā)環(huán)境:STM32CubeMX + KeilCMSIS-DSP庫(kù)版
    發(fā)表于 06-19 06:27

    請(qǐng)問(wèn)STM32G431內(nèi)部運(yùn)放1和2輸出連接的ADC為什么不是OPAMP?

    請(qǐng)問(wèn)下大家,STM32G431 芯片UVW三相的電流檢測(cè),配置使用內(nèi)部運(yùn)放PGA,看到G431-ESCdemo板對(duì)應(yīng)motor workbench配置,為什么UV相的運(yùn)放輸出分別是ADC1 3通道
    發(fā)表于 06-10 07:39

    STM32F40xxx和STM32f41xx flash編程手冊(cè)

    PM0081_STM32F40xxx and STM32F41xxx單片機(jī)編程手冊(cè)
    發(fā)表于 06-06 17:02 ?8次下載

    請(qǐng)問(wèn)STM32G431內(nèi)部運(yùn)放1和2輸出連接的ADC為什么不是OPAMP?

    請(qǐng)問(wèn)下大家,STM32G431 芯片UVW三相的電流檢測(cè),配置使用內(nèi)部運(yùn)放PGA,看到G431-ESCdemo板對(duì)應(yīng)motor workbench配置,為什么UV相的運(yùn)放輸出分別是ADC1 3通道
    發(fā)表于 06-06 07:47

    如何通過(guò)SFL為設(shè)備添加Flash編程支持

    SEGGER Flash Loader(SFL)是J-Link設(shè)備支持套件(DSK)的一部分,通過(guò)SFL,用戶可以為自己的新設(shè)備添加Flash編程支持。
    的頭像 發(fā)表于 05-19 16:35 ?1696次閱讀
    如何通過(guò)SFL為設(shè)備添加<b class='flag-5'>Flash</b><b class='flag-5'>編程</b>支持

    請(qǐng)問(wèn)STM32G431內(nèi)部運(yùn)放1和2輸出連接的ADC為什么不是OPAMP?

    請(qǐng)問(wèn)下大家,STM32G431 芯片UVW三相的電流檢測(cè),配置使用內(nèi)部運(yùn)放PGA,看到G431-ESCdemo板對(duì)應(yīng)motor workbench配置,為什么UV相的運(yùn)放輸出分別是ADC1 3通道
    發(fā)表于 05-14 08:12
    玉屏| 广州市| 抚州市| 松滋市| 凤台县| 鄯善县| 河曲县| 本溪市| 通化市| 青川县| 仁化县| 吉木萨尔县| 会同县| 宜春市| 舒兰市| 出国| 沂源县| 全南县| 治多县| 望谟县| 武城县| 巴东县| 云安县| 广东省| 吉林省| 舞阳县| 高陵县| 若尔盖县| 鄂伦春自治旗| 通道| 军事| 囊谦县| 响水县| 喀什市| 晋宁县| 白山市| 甘德县| 东乡族自治县| 时尚| 明光市| 义乌市|