STM32中NVIC Init導致的上電程式不執行

2021-08-18 15:07:26 字數 515 閱讀 3462

最近使用在stm32上使用ucosii的執行多工時候遇到乙個奇怪問題,我用到了4個串列埠,隨著程式增大,出現了上電後不執行的情況,我用乙個led閃爍指示執行,使用stlink進行debug沒有問題,但重新上電執行就不行,硬體復位了也不行,排除了硬體問題、指標跑飛、任務堆疊溢位、卡死在某死迴圈 等可能性後,懷疑是哪句初始化問題,就遮蔽了所有初始化語句(led的io口配置除外),最後定位在乙個串列埠的nvic初始化語句上。

void open_usart_wireless(u32 bound)

通過上網搜尋「stm32不執行 nvic_init 」,看到有位朋友在論壇發帖求助,情況和我類似,最後他自己解決了,就是要清一下中斷,然後我也在初始化中新增了清串列埠接收中斷,果然就可以了。我記得在誰家的例程裡我也看到過這樣的操作,初始化裡清一下串列埠接收中斷,可能是晶元是乙個bug。從道理上來說這個問題說不通,遇到這種情況的人也許不多,如果有遇到了類似情況的看到這個希望能有所啟發。

STM32學習之 stm32中C語言的資料型別

stm32 c語言資料型別 在程式設計過程中,不同的cpu,其資料型別的意義各不相同,所以一定要注意相應變數資料型別的定義和轉換,否則在計算中可能會出現不確定的錯誤。一 c語言中的種類資料 整型 int short long 實型 float double stm32中的資料型別非常的多,常用的變數...

預熱2 什麼是STM32?認識STM32

1 什麼是stm32 stm32是由arm公司設計,意法半導體 st 公司生產的基於 arm cortex m 核心的32 位的mcu 系列。2 stm32能做什麼?stm32 屬於乙個微控制器,適用於控制類,自帶了各種常用通訊介面,比如 usart i2c spi 等,可接非常多的感測器,可以控制...

stm32晶元休眠模式 stm32實現待機喚醒

stm32的低功耗模式有3種 1 睡眠模式 cm3核心停止,外設仍然執行 2 停機模式 所有時鐘都停止 3 待機模式 1.8v核心電源關閉 進入待機模式的方法,以及設定wk up引腳用於把stm32從待機模式喚醒的方法 一般步驟如下 1 設定sleepdeep位 scb scr的第二位 2 使能電源...