STM32F407 串口調試總結

       使用開發板的串口通訊例程修改了一個自己板子STM32F407的UART4,發現兩邊收發的數據但是錯誤的;

剛開始懷疑是我的USB轉串口模塊壞了,但在模塊上RX腳直接接TX腳,數據發送和接收是正常,說明USB轉串口模式是沒壞的;然後就懷疑UART4是不是比較特殊,代碼需要其他的特殊配置,在自己板子RX腳也是直接接TX腳,進入調試狀態查看收發數據,發現也是正常的,也查看了手冊和網上資料並沒有提到UART4的特殊性,說明我的代碼配置是沒問題。

最後去看了開發板與我自己板子的電路圖,發現原來是板子的晶振頻率不對,我的板子晶振頻率是8MHz,,開發板晶振頻率是25MHz;

使用標準庫:

在 stm32f4xx.h 中默認是25M的,所以修改了一下該文件(去掉文件的只讀權限後可修改):

1 #if !defined  (HSE_VALUE) 
2   #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */  //原來是25000000
3  
4 #endif /* HSE_VALUE */
---------------------
使用HAL庫:

在 stm32f4xx_hal_conf.h 中默認是25M的,所以修改了一下該文件

#if !defined  (HSE_VALUE) 
  #define HSE_VALUE    (8000000U) /*!< Value of the External oscillator in Hz 默認是25MHz*/
#endif /* HSE_VALUE */
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章