国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【STM32調(diào)試】寄存器調(diào)試不良問題記錄持續(xù)版

這篇具有很好參考價(jià)值的文章主要介紹了【STM32調(diào)試】寄存器調(diào)試不良問題記錄持續(xù)版。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

【STM32調(diào)試】寄存器調(diào)試不良問題記錄持續(xù)版,stm32,寄存器,調(diào)試

記錄一些stm32調(diào)試過程中:不易被理解、存在使用誤區(qū)、不清不楚、是坑、使用常識(shí)等方面的一些記錄。本記錄只包含stm32的內(nèi)核以及外設(shè)等寄存器的調(diào)試,不包含業(yè)務(wù)方面。

低功耗管理

  1. 使用低功耗功能前是否需要打開PWR時(shí)鐘?

是需要先打開PWR時(shí)鐘的,否則無法喚醒。

  1. 睡眠模式、停機(jī)模式和待機(jī)模式的區(qū)別?引用地址

這兩個(gè)模式與睡眠模式相比,屬于深度睡眠模式。

睡眠模式
【STM32調(diào)試】寄存器調(diào)試不良問題記錄持續(xù)版,stm32,寄存器,調(diào)試

停機(jī)模式
【STM32調(diào)試】寄存器調(diào)試不良問題記錄持續(xù)版,stm32,寄存器,調(diào)試

待機(jī)模式
【STM32調(diào)試】寄存器調(diào)試不良問題記錄持續(xù)版,stm32,寄存器,調(diào)試

NVIC(內(nèi)嵌的中斷向量控制器)

NVIC是什么東西?是內(nèi)嵌的中斷向量控制器?翻譯的被不明不白,無法理解。說簡單一點(diǎn)就是,來管理全部的中斷的控制器,哪個(gè)中斷來了,誰先來的,誰后來的,應(yīng)該先運(yùn)行哪個(gè)?能不能被搶占,還是按照順序執(zhí)行等。

  1. 如何理解中斷、掛起?

國內(nèi)單片機(jī)學(xué)習(xí)者一開始都是學(xué)習(xí)別人翻譯過來的中文手冊(cè),我也不例外。但是翻譯過來的有些就十分的晦澀難懂,更甚者還會(huì)有錯(cuò)誤出現(xiàn)(例如,EXTI的中斷\事件控制框圖)。所以建議去看看英文手冊(cè),即使借助翻譯軟件慢慢看也沒有關(guān)系。
對(duì)于理解中斷、掛起,十分有幫助的地方是M3權(quán)威指南手冊(cè)的124頁,看完如果沒有幫助你來找我。

  1. NVIC中的Pending(中斷掛起)位會(huì)自動(dòng)清除嗎?

當(dāng)觸發(fā)了某個(gè)中斷,并進(jìn)入了該中斷服務(wù)函數(shù)的話,該位是會(huì)被硬件自動(dòng)清除的。
但是觸發(fā)這個(gè)中斷的外設(shè)中的中斷標(biāo)志位的話,并不一定會(huì)自動(dòng)清除,需要查看手冊(cè),看是否需要自己手動(dòng)清除。

EXTI(外部中斷/事件)

  1. 將PortA0連接到EXTI0,觸發(fā)外部中斷,總是進(jìn)入兩次中斷服務(wù)函數(shù),并且沒有外部干擾存在。
void EXTI0_IRQHandler(void)
{
	// 中斷執(zhí)行的業(yè)務(wù)代碼...
   	ExtiClearIntStatus(0u); //清除LINE0上的中斷標(biāo)志位 
}

解釋:
① 該現(xiàn)象十分有規(guī)律,可以考慮是因?yàn)闆]有清除掉EXTI的掛起寄存器,導(dǎo)致該中斷一直被掛起,即使退出了中斷服務(wù)函數(shù),還是會(huì)一直進(jìn)入該中斷。
② 但是,每次只進(jìn)入兩次,上述還是解釋不通,并且代碼中已經(jīng)將掛起寄存器中的中斷標(biāo)志清除掉了。
③ 最終原因是因?yàn)?,清除中斷?biāo)志的函數(shù)寫在了最后一句,導(dǎo)致中斷服務(wù)函數(shù)返回后,硬件上仍舊沒有來得及將掛起寄存器的標(biāo)志位清零(硬件執(zhí)行是有延遲的)。所以導(dǎo)致又一次進(jìn)入了中斷服務(wù)函數(shù)。并且在仿真調(diào)試中,我也發(fā)現(xiàn),第一次進(jìn)入中斷服務(wù)函數(shù)時(shí),EXTI的PR掛起寄存器中的中斷標(biāo)志位為置位狀態(tài),第二次進(jìn)入中斷服務(wù)函數(shù)時(shí),發(fā)現(xiàn)該位已經(jīng)被清除。
④ 所以,最要是一進(jìn)入中斷服務(wù)函數(shù),就將掛起的標(biāo)志位清除掉,再執(zhí)行業(yè)務(wù)邏輯代碼,給硬件一定的執(zhí)行事件。

DMA(直接內(nèi)存訪問)

  1. 下面的代碼對(duì)dma進(jìn)行寄存器操作總是寫入失?。?/code>
	RCC->AHBENR |= RCC_AHB_DMA1;      // 開啟DMA1時(shí)鐘
	
	DMA_CHx->CPAR = uiPeriAddr;       // 外設(shè)地址
	DMA_CHx->CMAR = uiMemoryAddr;     // 內(nèi)存地址

解釋:
如果這樣操作,dma的這兩個(gè)寄存器總是寫入不成功。
因?yàn)閯傞_啟了DMA時(shí)鐘,還并未穩(wěn)定(電路的運(yùn)行也需要時(shí)間),所以寫入失敗,需要在時(shí)鐘開始后,加入延遲。
應(yīng)該加入至少大于等于兩個(gè)時(shí)鐘周期【__nop();】。

  1. 使用Dma進(jìn)行發(fā)送時(shí),有什么注意事項(xiàng)?

① 最好是使用Dma正常模式(即非循環(huán)模式)進(jìn)行發(fā)送。也就是數(shù)據(jù)轉(zhuǎn)移(發(fā)送)到全滿就停止Dma發(fā)送。
② 在Dma配置發(fā)送初始化時(shí),因?yàn)檫@個(gè)時(shí)候還沒有數(shù)據(jù)要進(jìn)行發(fā)送,所以CNDTR寄存器的值請(qǐng)寫入0,否則當(dāng)你使能Dma時(shí),它會(huì)自動(dòng)發(fā)送數(shù)據(jù)。最好是等想要發(fā)送數(shù)據(jù)時(shí):先失能Dma,寫入想要發(fā)送的數(shù)據(jù)長度,再使能Dma,啟動(dòng)發(fā)送。文章來源地址http://www.zghlxwxcb.cn/news/detail-801987.html

到了這里,關(guān)于【STM32調(diào)試】寄存器調(diào)試不良問題記錄持續(xù)版的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • STM32寄存器點(diǎn)亮LED燈

    STM32寄存器點(diǎn)亮LED燈

    ?這個(gè)燈是 PB5引腳 看原理圖可以看出 讓GPIOB5輸出低電平 就能點(diǎn)亮 那么我們得讓 打開控制GPIOB5的時(shí)鐘 讓GPIOB5?輸出模式 讓GPIOB5低電平 時(shí)鐘就相當(dāng)于一個(gè)閥門開關(guān),或者理解成水龍頭,你打開了 才有水出來,也就是你打開才能工作。 看中文參考手冊(cè) 系統(tǒng)架構(gòu) 找到你的GPIO

    2024年02月07日
    瀏覽(35)
  • STM32的GPIO操作(寄存器&HAL)

    STM32的GPIO操作(寄存器&HAL)

    (注:此為樂某學(xué)習(xí)記錄,若有出錯(cuò)的地方歡迎各位指出?。?本人使用的開發(fā)板的芯片是STM32H743XIH6,所以外設(shè)也是根據(jù)此芯片來介紹。 在使用HAL庫配置的時(shí)候,需要安裝STM32CubeMX。此軟件可在ST官網(wǎng)下載,剩下的安裝步驟比較簡單,不會(huì)單獨(dú)出篇進(jìn)行講解。 STM32CubeMX下載網(wǎng)址

    2024年02月04日
    瀏覽(32)
  • STM32-ADC電壓采樣實(shí)驗(yàn)(寄存器版)

    STM32-ADC電壓采樣實(shí)驗(yàn)(寄存器版)

    STM32F10X系列支持三路ADC,其ADC通道及對(duì)應(yīng)IO口如下表所示: 其能接受的電壓輸入范圍一般為0-3.3V(V REF- ≤ V IN ≤ V REF+ ),因此,如果需要測(cè)量超出0-3.3v量程范圍的電壓數(shù)據(jù),需要在外圍硬件增加分壓電阻,將電路轉(zhuǎn)換到0-3.3V量程范圍內(nèi)再進(jìn)行采集。 這里用于做ADC采集的引腳使

    2024年02月15日
    瀏覽(27)
  • STM32 寄存器配置筆記——GPIO配置輸出

    STM32 寄存器配置筆記——GPIO配置輸出

    ? ? ? ?本文主要介紹GPIO 作為輸出時(shí)的寄存器配置。包括時(shí)鐘配置,輸出模式配置。以STM32F10xxx系列為例,配置PA8、PD2端口作為輸出,輸出高/低電平。 ? ? ? ? 1)GPIO外設(shè)時(shí)鐘 ? ? ? ? ?通過查找STM32F10xxx中文參考手冊(cè)得知,GPIO PORT口的時(shí)鐘配置在RCC_APB2ENR寄存器的第2~6位,

    2024年01月24日
    瀏覽(44)
  • STM32存儲(chǔ)器映射以及寄存器映射

    STM32存儲(chǔ)器映射以及寄存器映射

    目錄 1.STM32的尋址范圍? 2.存儲(chǔ)器映射 3.存儲(chǔ)器功能劃分(以STM32F1為例) 4.寄存器映射 1.32位單片機(jī)有32根地址線,每根地址線有兩種狀態(tài),導(dǎo)通或者不導(dǎo)通。 2.單片機(jī)內(nèi)存地址訪問的存儲(chǔ)單元是按字節(jié)編址的,而不是bit。 比如我們要訪問0x01這個(gè)地址,訪問的其實(shí)是一個(gè)字節(jié)的空

    2024年04月23日
    瀏覽(47)
  • STM32微機(jī)系統(tǒng)框架、內(nèi)存、存儲(chǔ)器、寄存器

    STM32微機(jī)系統(tǒng)框架、內(nèi)存、存儲(chǔ)器、寄存器

    大家好,我是 杰哥嵌入式開發(fā) 最近在出定時(shí)器系列, 但是線下班有一些學(xué)生在學(xué)習(xí)完C語言之后, 在51接觸各種寄存器和對(duì)軟件代碼各種操作是如何在單片機(jī)系統(tǒng)中起到作用的感到非常的不解, 經(jīng)過我的初步分析,是對(duì)嵌入式微機(jī)系統(tǒng)的大概雛形系統(tǒng)框架不熟悉導(dǎo)致。 所以

    2024年02月06日
    瀏覽(35)
  • keil5 查看stm32 寄存器的值

    keil5 查看stm32 寄存器的值

    1 查看芯片內(nèi)部寄存器的值,首先是在仿真狀態(tài)下,首先仿真,程序運(yùn)行。 2 點(diǎn)擊菜單欄的 View - System viewer ,右側(cè)便會(huì)出現(xiàn)芯片的所有寄存器(如果沒有,需要添加),點(diǎn)擊要查看的寄存器,便會(huì)出現(xiàn)在側(cè)邊欄上 可以查看值,也可以直接設(shè)置寄存器的值。 3 如果沒有出現(xiàn),如下

    2024年01月24日
    瀏覽(32)
  • STM32 寄存器操作 GPIO 與下降沿中斷

    STM32 寄存器操作 GPIO 與下降沿中斷

    寄存器本質(zhì)就是一個(gè)開關(guān),當(dāng)我們把芯片寄存器配置指定的狀態(tài)時(shí)即可使用芯片的硬件能力。 寄存器映射表則是開關(guān)的地址說明。對(duì)于我們希望點(diǎn)亮 GPIO_B 的一個(gè)燈來說,需要關(guān)注以下的兩個(gè)寄存器: ? 對(duì)于我們實(shí)現(xiàn)希望點(diǎn)亮一個(gè)燈的需求來說,不僅需要配置配置 GPIO_B 的時(shí)

    2024年02月20日
    瀏覽(28)
  • 【STM32】讀寫B(tài)KP備份寄存器&RTC實(shí)時(shí)時(shí)鐘

    【STM32】讀寫B(tài)KP備份寄存器&RTC實(shí)時(shí)時(shí)鐘

    目錄 BKP BKP簡介 BKP基本結(jié)構(gòu) BKP測(cè)試代碼 RTC RTC簡介 RTC框圖 RTC基本結(jié)構(gòu) 硬件電路 RTC操作注意事項(xiàng) 接線圖 初始化 使用BKP解決只初始化一次時(shí)間 ?初始化參考代碼 RTC設(shè)置時(shí)間 RTC讀取時(shí)間 完整代碼 MyRTC.c MyRTC.h main.c BKP(Backup Registers)備份寄存器 BKP可用于存儲(chǔ)用戶應(yīng)用程序數(shù)據(jù)

    2024年04月22日
    瀏覽(41)
  • 【STM32 CubeMX】HAL庫的本質(zhì)讀寫寄存器

    【STM32 CubeMX】HAL庫的本質(zhì)讀寫寄存器

    在嵌入式系統(tǒng)開發(fā)中,HAL(Hardware Abstraction Layer)庫是一個(gè)重要的概念,它提供了一個(gè)抽象層,使開發(fā)者可以更容易地編寫可移植的代碼,而不必?fù)?dān)心底層硬件的細(xì)節(jié)。STM32CubeMX是一款由STMicroelectronics提供的工具,用于生成STM32微控制器的初始化代碼,其中包括了HAL庫的使用。

    2024年02月20日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包