|
本帖最後由 vegewell 於 2014-8-20 03:15 編輯
回復 3# jacklnc
這是省略用語,意思就是既然讀不到,就要催它快給,
當然這需要一些技術,
我認為你的問題可能出在
if ( NewSoftSerial::available() > 0 && NewSoftSerial::read()==SLCD_INIT )
{
之後,多的這一行: NewSoftSerial::print(SLCD_INIT_ACK);
可能這句把機器搞混了,
它裡面有固定的開機程序,不能亂寫,
所以改如下:
NewSoftSerial::begin(9600);
while(1)
{
if ( NewSoftSerial::available() > 0 && NewSoftSerial::read()==SLCD_INIT )
{
break;
}
}
delay(2);
NewSoftSerial::print(SLCD_CONTROL_HEADER);
NewSoftSerial::print(SLCD_POWER_OFF);
delay(1);
NewSoftSerial::print(SLCD_CONTROL_HEADER);
NewSoftSerial::print(SLCD_POWER_ON);
delay(1);
NewSoftSerial::print(SLCD_INIT_ACK);
while(1)
{
if (NewSoftSerial::available() > 0 && NewSoftSerial::read()==SLCD_INIT_DONE)
break;
}
如果還不行,
再如下:
Serial.begin(9600);
NewSoftSerial.begin(9600);
delay(5000);
Serial.println("Starting the set-up process");
delay(10);
NewSoftSerial.write(SLCD_CONTROL_HEADER);
NewSoftSerial.write(SLCD_POWER_OFF);
delay(10);
NewSoftSerial.write(SLCD_CONTROL_HEADER);
NewSoftSerial.write(SLCD_POWER_ON);
delay(10);
NewSoftSerial.write(SLCD_INIT_ACK);
while(1)
{
if (NewSoftSerial.available() > 0 && NewSoftSerial.read()==SLCD_INIT_DONE) {
Serial.println("It's talking!");
break;
}
}
如果還不行,
就可能不是程式的問題, |
|