STM32F429時鍾不正確導致串口無法正確收發


老早之前自己做了塊F4的板子,設計原理圖時沒有去找官方參考,看了手冊后就開工了,做完板子回來測試串口發現PC端接收到的都是亂碼,嘗試了幾種波特率也沒能正確接收,串口的代碼是官方參考例程的,不應該有問題。所以定位到時鍾上,下載了官方的參考設計,發現使用的時鍾是25M的外部參考時鍾,而我的是8M的,打開頭文件stm32f4xx.h,找到宏定義如下所示,我的芯片是F429的,按照官方定義外部時鍾源是25M

 

修改為實際的時鍾源8M如下:

按照以上修改后編譯后,PC還是不能正確接收數據,查看system_stm32f4xx.c文件,找到分頻因子宏如下,分頻因子還是25,

這樣不能正確分頻得到1M,所以修改為8如下,使能正確分頻得到1M時鍾,編譯測試通過。另外需要注意的是以上提到的兩個文件默認情況下是無法修改的,需要到文件目錄里的對應文件的屬性里,把只讀屬性去除即可修改。

 

------------恢復內容結束------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM