Я пытался увидеть ASCII-символ «A» с помощью осциллографа, но реальные двоичные значения и значения осциллографа разные, почему это так? ASCII "A" Двоичная стоимость - 01000001
Осциллограф отображает этот график:
Я использую Arduino Uno для отправки значения ASCII с помощью кода:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("A");
delay(1000);
}
источник
println
команду, которая означает печать строки, а также "\ r \ n". Итак, три персонажаЕсли вы посмотрите документацию Arduino println (), то увидите, что в конце добавляется возврат каретки и перевод строки. Таким образом, в десятичном виде вы получите 65 (A), 13 (CR) и 10 (LF), что в двоичном виде означает:
Асинхронные последовательные данные передаются LSB в первую очередь, так что становится:
Ваш сигнал неактивен, поэтому начальный бит будет равен 0, а стоп-бит будет равен 1, поэтому добавьте его к каждому байту, и вы получите:
Сложно определить точное время на диаграмме, но это, по крайней мере, примерно совпадает и должно дать вам представление о том, откуда взялись некоторые дополнительные биты и почему они переупорядочены. Ссылка на Википедию, предоставленная Kvegaoro, дает много полезной информации об асинхронных последовательных данных.
источник
Если тот поток, который вы показываете, является асинхронным последовательным , осциллограф покажет соответствующий стартовый бит, стоповый бит (ы) и биты четности. Также примите во внимание, является ли ваш сигнал инвертированным или нет, и будет ли он старшим значащим битом или младшим значащим битом первым. Если вы добавите более подробную информацию о последовательном потоке, который вы представили на рисунке, мы можем дать вам более подробный ответ, в противном случае это всего лишь догадка.
источник