Помогите пожалуйста

Пытаюсь передать символ, но не понимаю почему приходит число 160, а я ожидаю 65, ведь такой код у символа А

SoftwareSerial mySerial(11, 10); // RX, TX
void setup() {
Serial.begin(9600);
while (!Serial) { }
mySerial.begin(9600);
mySerial.print('A');


}
void loop() {
  


}
#include <SoftwareSerial.h>
SoftwareSerial mySerial(11, 10); // RX, TX
void setup() {
Serial.begin(9600);
while (!Serial) { }
mySerial.begin(9600);
}
void loop() {
if (mySerial.available())
{
  Serial.println(mySerial.read());
  
}
   
}

160 это русская буква а
Всё норм, что отправили то и получили.

2 лайка

Англ отправляю

Русская буква А - 0xc0 - 192

1 лайк

При отправке 0-9 все норм

Отправьте char ch=90. Чего принимается?

принимается 173

1 лайк
#include <SoftwareSerial.h>
SoftwareSerial mySerial(11, 10); // RX, TX
void setup() {
Serial.begin(9600);
char ch=90;
while (!Serial) { }
mySerial.begin(9600);
mySerial.print(ch);


}
void loop() {



}

Давайте напишем:

for (char ch=1; ch<256; ch++){
mySerial.print(ch);
}

Чего даст?

Печатает кучу чисел) Тут еще вопрос, почему когда я передаю допустим 10, то он печатает не 49 48, а два раза 152

Если передаю не 0, а ‘0’, то печатает 152 и тоже самое с ‘1’, тоже 152

Они идут по порядку? Если нет - то у Вас хреновый контакт где-то…
Да, и главное - земли соединены?

В тинкеркаде собираю, не по порядку

Схему опубликуй

152 - это символ начала строки

Щас в протеусе проверю.

В строке №6 кода отправки замените print на write.

тоже самое

1 лайк

Вот я тормоз :frowning: