最近開發一個STC8單片機(STC8H3K32S2)項目,需要通過傳口與藍牙模塊通訊,波特率高於57600后STC接收時出現亂碼,但發送時正常。當將stc8串口和藍牙串口分別接USB轉串口模塊通訊正常。異常如下:
起初懷疑是電路問題,在stc Rx端嘗試過添加上拉電阻、串接過匹配電阻都沒有效果,后來懷疑是內部時鍾不穩,嘗試過加外部晶振,始終未解決問題。
最后微調串口的定時器,將定時器重載值-1,微調了波特率,成功解決問題。
可能是stc的時鍾和藍牙的時鍾都不太准,導致兩者通訊出現亂碼,微調時鍾后解決問題。