STM32串列埠列印輸出亂碼的解決辦法

2021-09-12 18:49:50 字數 1040 閱讀 1375

開啟工程中的stm32f10x.h檔案,ctrl+g快捷鍵定位到119行,把巨集定義

#define hse_value    ((uint32_t)8000000) /*!< value of the external oscillator in hz */
外部晶振頻率8m修改為12m

#define hse_value    ((uint32_t)12000000) /*!< value of the external oscillator in hz */
如下圖所示:

開啟工程中的system_stm32f10x.c檔案,ctrl+g快捷鍵定位到1056行,把巨集定義

rcc->cfgr |= (uint32_t)(rcc_cfgr_pllsrc_hse | rcc_cfgr_pllmull9);
倍頻係數由9修改為6,因為stm32f103主頻最高到72mhz,外部晶振改為12m後,所以倍頻係數改為6

rcc->cfgr |= (uint32_t)(rcc_cfgr_pllsrc_hse | rcc_cfgr_pllmull6);
如下圖所示:

當然串列埠亂碼可能不止這乙個原因,這個解決方法只針對於外部晶振的改變,導致的串列埠資料亂碼。其他問題還要仔細分析,總得來說,兩個問題:程式問題,硬體問題。

STM32串列埠輸出亂碼

原因一 初始化串列埠的波特率與串列埠除錯助手不一致。原因二 晶震不一致。串列埠輸出始終亂碼,外部時鐘頻率配置錯誤導致的,庫使用預設8mhz晶震,可以通過巨集使用25mhz晶震。具體定義在stm32f10x.h 文件中 開發板晶震使用的12mhz晶震,定義乙個巨集修改成12000000,編譯,燒寫。i...

STM32串列埠亂碼

前言 今天用最小系統,需要串列埠的除錯,然後就死活不對,一直是亂碼,看hex的話一直是出現0a 0a 0a 0a 0a 0a 0a 0a 0a在迴圈 問題分析並解決 問題切記rxd埠如果出現問題,建議先將rxd埠設定成 gpio mode ipu 上拉輸入 雖然手冊寫著浮空輸入或帶上拉輸入都可以,建...

stm32串列埠輸出

stm32開發板上是如何實現串列埠通訊的,我以實現printf重定向為例來進行分析 先看 main.c include printf.h int main printf.c include printf.h include stm32f10x.h include stm32f10x rcc.h in...