1. 程式人生 > >串列埠通訊——硬串列埠

串列埠通訊——硬串列埠

為了便於後期問題的解決,在此我們梳理一下Arduino的硬串列埠(HardwareSerial)與軟串列埠(SoftwareSerial)之前的區別與聯絡,以及在使用過程中應該注意的問題。

Arduino面板

以常見的Arduino UNO為例,面板上只有一組串列埠,即引腳 0(RX)和1(TX)。 電腦與Arduino的通訊即通過這兩個埠進行,USB口通過一個轉換晶片(通常為ATmega16 u2)與這兩個串列埠引腳連線,雖然表面上電腦沒有直接用外接的電線與這兩個引腳相連,但是二者之間的效果是一樣的。當Arduino控制器使用USB線與計算機相連時,兩者之間便建立了串列埠連線。通過此連線,Arduino控制器可與計算機相互傳資料了。

通常一個串列埠只能連線一個裝置進行通訊(劃重點)。

為了讓讀者理解的更加深刻,在此以曾經犯過的一個錯誤為例:

連線圖

專案是通過Arduino+ESP8266實現聯網傳輸資料的功能,為了提高效能我選擇了ESP8266通訊埠與Arduino的硬串列埠相連線。程式編譯沒有錯誤,但是在上傳的過程中總是報錯,而這個錯誤就是因為我的串列埠同時和兩個裝置相連線導致的。

軟體報錯明細

相信聰明的讀者,肯定不會犯這種幼稚錯誤的,在此博君一笑。

2018/7/4