STM32串列埠輸出亂碼

2022-03-20 20:12:41 字數 984 閱讀 1810

原因一:

初始化串列埠的波特率與串列埠除錯助手不一致。

原因二:

晶震不一致。

串列埠輸出始終亂碼,外部時鐘頻率配置錯誤導致的,庫使用預設8mhz晶震,可以通過巨集使用25mhz晶震。具體定義在stm32f10x.h 文件中

開發板晶震使用的12mhz晶震,定義乙個巨集修改成12000000,編譯,燒寫。

#if !defined  hse_value

#ifdef stm32f10x_cl   

#define hse_value    ((uint32_t)25000000) /*!< value of the external oscillator in hz */

#else

#define hse_value    ((uint32_t)8000000) /*!< value of the external oscillator in hz */

#endif /* stm32f10x_cl */

#endif /* hse_value */

修改為:

#define hse_value    ((uint32_t)12000000) /*!< value of the external oscillator in hz */

#if !defined  hse_value

#ifdef stm32f10x_cl   

#define hse_value    ((uint32_t)25000000) /*!< value of the external oscillator in hz */

#else

#define hse_value    ((uint32_t)8000000) /*!< value of the external oscillator in hz */

#endif /* stm32f10x_cl */

#endif /* hse_value */

ref

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...

STM32串列埠輸出亂碼解決方法

最近在做stm32的雲端專案中遇到個問題 相同 換了一塊實驗板之後串列埠輸出全是亂碼,最後細細一想後發現是兩塊是實驗板所用的外部晶振頻率不一樣。修改之後,問題解決。接下來演示一下修改工程的方法。修改 stm32f10x.h 檔案中的外部時鐘頻率 可以用快捷鍵ctrl g數入119跳轉到此行 修改為自...