標題: stm32f103串口通信亂碼問題解決方法 [打印本頁]

作者: Vence    時間: 2019-10-9 10:00
標題: stm32f103串口通信亂碼問題解決方法
本人利用的是中國移動贈送的麒麟開發(fā)板,在進行串口通信的實驗時,采用正點原子的代碼,發(fā)現(xiàn)會一直出現(xiàn)亂碼的情況。經(jīng)過兩天時間的排查,最終發(fā)現(xiàn)是晶振的問題,麒麟開發(fā)板使用的外部晶振是12M的,但是正點原子的代碼使用的是8M的晶振,下面演示修改前后的變化過程。(注意,波特率的設置也需要一樣)

利用串口1需要發(fā)送的內(nèi)容:



串口接收到的信息:




修改system_stm32f10x.c文件中的晶振分頻為6分頻,因為自己用的麒麟開發(fā)板是12M的,12×9 = 108M,需要改成六分頻,12×6 = 72M:



現(xiàn)在修改為六分頻:




我們再來看一次現(xiàn)在是不是不亂碼了,發(fā)現(xiàn)還是亂碼:




接下來修改stm32f10x.h文件中的宏定義,看到默認的是8000000的,我們把它改成我們需要的12000000








現(xiàn)在再來看看上位機接收到的數(shù)據(jù)吧:終于正常啦~




心得:在玩stm32這種資源豐富的開發(fā)板的時候,一定要注意開發(fā)板的晶振和代碼里設置的晶振是不是一樣的,不然就會出現(xiàn)很多異常的問題









歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1