плата Micro как UART2USB конвертер

alexbmd
Offline
Зарегистрирован: 15.01.2016

Нашёл простой и интересный код как превратить микру в usb-serial адаптер.

void setup() {
  Serial.begin(115200); //This pipes to the serial monitor
  while(!Serial);
  Serial1.begin(9600); //This is the UART, pipes to sensors attached to board
  while(!Serial1);
}

void loop() {
  if ( Serial.available() ) {
    int inByte = Serial.read();
    Serial1.write( inByte );
  }
  if ( Serial1.available() ) {
    int inByte = Serial1.read();
    Serial.write( inByte );  
  }
}

Но вот вопрос:

Когда мы ничего не подключаем к rx,tx и я открываю serial monitor в ардуине то на экране бегут квадратики. это я так понимаю поступают какието даные на внешний rx и плата отправляет их мне на монитор. Но у меня же не подключены rx,tx

Как избавиться от этих квадратиков ?  Я ожидаю увидеть на мониторе реально поступающие данные и в случае если ничего не подключенно то пустой монитор. Что я делаю неправильно ? почему бегут эти квадратики?

nik182
Offline
Зарегистрирован: 04.05.2015

Добавь в 11 и 15 строках в скобках ", HEX" 

alexbmd
Offline
Зарегистрирован: 15.01.2016

nik182 пишет:

Добавь в 11 и 15 строках в скобках ", HEX" 

Serial.write(inByte, HEX);

так? это как я понимаю мы конвертируем в HEX ?

просто я смотрю описание сериала и там если два значения через запятую то получается буфер,длина . как понять когда мы конвертируем в хекс а когда буфер длина ?

Serial.write(buf, len)

nik182
Offline
Зарегистрирован: 04.05.2015

Это что бы увидеть что внутри квадратиков. Если ноги не подключены, то может лететь наводка.

sadman41
Offline
Зарегистрирован: 19.10.2016

HEX для print(), не для write().

alexbmd
Offline
Зарегистрирован: 15.01.2016

вы не удивляйтесь что легче попробовать чем спрашивать. просто комп с проектом в другой части города куда я пока не добрался. пока читаю доки и пишу с телефона

 

// внутрений буфер ардуинки 64 байта

void setup() {
  Serial.begin(115200); //This pipes to the serial monitor
  while(!Serial);
  Serial1.begin(9600); //This is the UART, pipes to sensors attached to board
  while(!Serial1);
}

void loop() {
  if ( Serial.available() ) {
    char inByte = Serial.read();
    Serial1.write( inByte );
  }
  if ( Serial1.available() ) {
    char inByte = Serial1.read();
    Serial.write( inByte );

  }
}

 кстати да похоже на наводку, т.к. при подклбченых девайсов, видим только что отправили.  чтоб небыло наводок заземлить RX TX через 10K ?

alexbmd
Offline
Зарегистрирован: 15.01.2016

вообщем код рабочий, квадратики это похоже цифровой шум, только учтите что микро идет 5В логическая единица не всем модулям это может понравиться