找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5475|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

stm32f103串口通信亂碼問(wèn)題解決方法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本人利用的是中國(guó)移動(dòng)贈(zèng)送的麒麟開(kāi)發(fā)板,在進(jìn)行串口通信的實(shí)驗(yàn)時(shí),采用正點(diǎn)原子的代碼,發(fā)現(xiàn)會(huì)一直出現(xiàn)亂碼的情況。經(jīng)過(guò)兩天時(shí)間的排查,最終發(fā)現(xiàn)是晶振的問(wèn)題,麒麟開(kāi)發(fā)板使用的外部晶振是12M的,但是正點(diǎn)原子的代碼使用的是8M的晶振,下面演示修改前后的變化過(guò)程。(注意,波特率的設(shè)置也需要一樣)

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



串口接收到的信息:




修改system_stm32f10x.c文件中的晶振分頻為6分頻,因?yàn)樽约河玫镊梓腴_(kāi)發(fā)板是12M的,12×9 = 108M,需要改成六分頻,12×6 = 72M:



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




我們?cè)賮?lái)看一次現(xiàn)在是不是不亂碼了,發(fā)現(xiàn)還是亂碼:




接下來(lái)修改stm32f10x.h文件中的宏定義,看到默認(rèn)的是8000000的,我們把它改成我們需要的12000000








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




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




評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表