老早之前自己做了塊F4的板子,設計原理圖時沒有去找官方參考,看了手冊后就開工了,做完板子回來測試串口發現PC端接收到的都是亂碼,嘗試了幾種波特率也沒能正確接收,串口的代碼是官方參考例程的,不應該有問題。所以定位到時鍾上,下載了官方的參考設計,發現使用的時鍾是25M的外部參考時鍾,而我的是8M的,打開頭文件stm32f4xx.h,找到宏定義如下所示,我的芯片是F429的,按照官方定義外部時鍾源是25M
修改為實際的時鍾源8M如下:
按照以上修改后編譯后,PC還是不能正確接收數據,查看system_stm32f4xx.c文件,找到分頻因子宏如下,分頻因子還是25,
這樣不能正確分頻得到1M,所以修改為8如下,使能正確分頻得到1M時鍾,編譯測試通過。另外需要注意的是以上提到的兩個文件默認情況下是無法修改的,需要到文件目錄里的對應文件的屬性里,把只讀屬性去除即可修改。
------------恢復內容結束------------