Arduino при одинаковом Baudrate принимает по uart с stm32 сообщения, а в монитор порта пишет краказябру
Stm32 присылает по uart на Arduino расстояние между датчиками. Если подключить stm32 по uart к компу по скорости 115200, то Putty в понятном виде выдает данные о расстоянии. Если же stm32 по uart с той же скоростью передает в arduino данные, то в мониторе порта ардуины появляются непонятные символы или по простому краказябра, что делать в данной ситуации? пробовал менять скорость на обоих контроллерах на 9600 не помогает.
void setup() {
Serial.begin(115200);
Serial.setTimeout(5);
}
void loop() {
Serial.print(Serial.readString());
}
Ответы (1 шт):
Arduino на основе на основе процессоров AVR имеет уровень сигналов Vcc*0.3V .. Vcc*0.6V. Это значит то что ниже 1.5В это 0, то что выше 3В это 1.
У STM32 Vcc = 3.3 В. Единицу он выйдет с уровнем 2.7 В , это меньше 3 и ардуина не может точно определить 1 или 0. Отсюда и кракозябры.
Решить вопрос можно или подтяжкой с открытым коллектором или через конвертор уровней.