在最近的小項目中,單片機中斷優先級的問題,串口發送到上位機的數據有時會出現發送的數據被中斷打斷的問題。
於是,在上位機機上就容易出現錯誤,原來讀取的方法是read()的方法,反復修改發送數據的格式依然沒有好轉。
后來講將上位機的讀取方式換成readline()問題得到了解決,且百發百中,問題可能歸結於readline方法自身的特性吧。
readline會一直在那里等候,知道接收到換行符"\r\n",所以在沒有接收到完整數據時,會一直在那里等候數據的到來,不離不棄。
即便下位機的數據發送過程被其他中斷打斷。
readline返回的是字符串,所以接收變量也應該是字符串變量即可,然后分解數據包,其他的處理過程是一樣的。
