|
小弟在做一個通訊,由PC接Arduino,通訊時PC會發送handshake(如圖一),
所以Arduino在handshake會接收PC的封包,但是會LOST掉3個byte(如圖二),原封包是(圖三)
怎樣才能準確的收到完整的資料?
PS(圖四)PC送出訊號時的真實時脈
圖(一)
圖(二)
圖(三)
圖(四)
- void setup() {
- Serial2.begin(38400, SERIAL_8E1);
- Serial.begin(38400, SERIAL_8E1);
- pinMode(2, OUTPUT);
- pinMode(3, OUTPUT);
- pinMode(4, INPUT);
- pinMode(5, INPUT);
- digitalWrite(2, LOW); //RX
- digitalWrite(3, LOW); //TX
- digitalWrite(4, LOW); //RX
- digitalWrite(5, LOW); //TX
- }
- void loop() {
- if(digitalRead(4) > 0) //handshake為高電位
- {
-
- char A;
- String S = "";
- int c=0, i=-1;
- //delay(4);
- while(Serial2.read() > 0)
- {
- delay(4);
- Serial.write(Serial2.read()); //即讀即寫
- c=1;
- }
- }
- }
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|