這幾天開始忙于調(diào)試我們自己的STM32主板,2.4G RF模塊已經(jīng)調(diào)試成功,然后接著調(diào)試串口,也就是如此,問題來了。
我們的主板是按照神舟IV板上的原理圖進行擴展和延伸,串口電路圖自然和神舟IV板上的同一類型MAX3232。我們在網(wǎng)上采購的芯片是MAX232,一開始都沒有注意,
調(diào)試程序時發(fā)現(xiàn)不論什么波特率,串口調(diào)試助手都能收到數(shù)據(jù),但數(shù)據(jù)都是錯誤的。而同樣的代碼放在神舟IV板上,兩個串口都能正常工作。很明顯可以斷定是我們
板子的問題。
于是連夜加班查找問題,電路重新檢查過,我們板上使用的是串口1,對應IO口為PA9、PA10。電壓也測過是一樣的,唯一當時沒有懷疑過的就是外設電容。直到今天
早上,我仍然在懷疑是串口芯片壞了。也就是這個時候,腦海中突然靈光一現(xiàn),我們焊接的串口芯片和神舟IV上的是不是一樣的呢? 趕忙拿起來一看,不一致,看起來
似乎區(qū)別也不大,就名字不一樣。翻開手冊,看到手冊上描述的外部電容時,這疑惑解開了。 MAX3232匹配的電容是0.1uf 也就是100nf,而MAX232要使用1uf電容,
這應該就是答案了。
于是趕緊使用電烙鐵將電容元件卸下,重新焊接好1uf電容,再進行測試時,一切正常。
MAX3232 外部電路如下:
MAX232 外部電路如下:
以后遇到串口輸出不正確,如果是自己焊板,首先檢查外圍電路電容是否匹配,然后再檢查軟件的波特率等。