介紹 UART Arduino 硬件在 0 pin 和 1 pin 口支持串行通信( 電腦通過 USB 連接) ,其實是使用了一個 ( 內置芯片 ) 稱為 UART 的芯片。這種硬件允許 ATmega 即使正在進行其他任務時也能通信,只要 serial 的 64 byte 緩存有其他的空間。 SoftwareSerial 使用 SoftwareSerial Library 可以在 Arduino 的任何數字引腳上進行通信,因此軟件端口數可以擴展,並且波特率可達 115200bps 。 有個叫 Mikal Hart 的傢伙編寫了 NewSoftSerial library ,這個庫改進了 SoftwareSerial Library ,優點更多,因此之後的版本都是基於這個庫的。這種其實是軟件模擬通信的,具有很多局限性。 範例程式:選擇不同 baud rate 與設備通訊 #include <SoftwareSerial.h> SoftwareSerial DLSerial(10, 11); // RX,TX int cammand; int baudChoose; void setup() { Serial.begin(9600); DLSerial.begin(9600); } void loop() { String s = ""; while (Serial.available()) { char c = Serial.read(); if (c != '\n') { s += c; } delay(5); // 沒有延遲的話 UART 串口速度會跟不上Arduino的速度,會導致資料不完整 } String value; if (s != "") { cammand = (s.substring(0, 2)).toInt(); value = (s.substring(3, 22)); switch (c
留言
張貼留言