本帖最後由 超新手 於 2015-10-19 18:06 編輯
原來那邊有serin.end();
因為原版沒有, 就沒看到
所以那邊也要一起拿掉
我"猜"做法應該是....
因為是 SoftwareSerial 一次只能收一個埠
所以要切換, 但不要用 begin end 切換
而是用 listen, 而且也不應該在 loop 中切換而且在一組收到完整資料後再切(parseAndPrint )
而且 readdata/parseAndPrint 要寫兩組, 一個給 SERIN, 一個給 SERIN2
當一組收完時. 就使用 listen , 切至另一組
unsigned char Toggle;
void setup(void)
{
..........
serin2.stopListening();
serin.listen();
Toggle = 0;
}
void loop()
{
if(Toggle == 0) {
readData();
}
else {
readData2();
}
}
void parseAndPrint(char * data) {
....................
serin.stopListening();
serin2.listen();
Toggle = 1;
}
void parseAndPrint2(char * data) {
....................
serin2.stopListening();
serin.listen();
Toggle = 0;
}
我亂猜的.... |