Собственно такая проблема. У меня две платы ардуино соединены по RX/TX.
На одной плате стоит Бейсик, который шлет символы печатаемые мной второй ардуине, которая у меня вместо видеокарты работает. Так вот мне нужно чтобы когда я переслал команду "CLS", плата "видеокарта" выполнила команду VGA.Clear() , но так как ардуина с Бейсиком шлет данные в виде ASCI символов как я понял, команда не выполняется.
В общем сама суть...как нужно преобразовать входящую строку, чтобы при получении комбинации "CLS" была выполнена соответствующая команда.
Вот кусок кода который отвечает за отправку у меня на сериал, тут все нормально:
static void outchar(unsigned char c)
{
if( inhibitOutput ) return;
#ifdef ARDUINO
#ifdef ENABLE_FILEIO
if( outStream == kStreamFile ) {
// output to a file
fp.write( c );
}
else
#endif
#ifdef ARDUINO
#ifdef ENABLE_EEPROM
if( outStream == kStreamEEProm ) {
EEPROM.write( eepos++, c );
}
else
#endif /* ENABLE_EEPROM */
#endif /* ARDUINO */
Serial.write(c);
А вот код принимающего устройства:
void setup() {
Serial1.begin(9600);
VGA.begin(320, 240, VGA_COLOUR);
VGA.setInk(16);
}
void loop() {
if(Serial1.available()) {
int inByte = Serial1.read();
VGA.write(inByte); }
if(Serial1.available()) { // клонировал сразу для удобства
int inByte = Serial1.read(); // чтобы методом тыка
VGA.write(inByte); } // менять код.
}
Символы доходят и выводятся верно, но команды не выполняются.




