Я пытаюсь отправлять и получать данные между python и скриптом atmega128 avr.Я получаю странный тип байта, который я не понимаю.
Я пытался прочитать данные в коде Python, но результаты выглядят как b '\ x00' b '\ x06' b '\ x9e'b'f' b '\ x06'.Что не так в моем коде?
Вот мой основной поток atmega
unsigned char Message[]="Initialization Complete!";
unsigned char buff = 0;
MCU_init();
UART_init_with_INT();
uart_send_string(Message,25);
uart_send_byte('\n');
uart_send_byte('\r');
return 0;
Это мой скрипт чтения данных Python
import serial
ser = serial.Serial('COM4', 115200)
while(True):
print(ser.read())
#ser.write(b'hello test')
ser.close()
Это мой настоящий странныйрезультат
b'\x86'
b'\x98'
b'\xf8'
b'\x9e'
b'\x86'
b'\x9e'
b'`'
b'f'
b'\x9e'
b'\x06'
b'\x06'
b'\x9e'
b'\x86'
b'\x9e'
b'\x98'
b'f'
b'\x06'
b'~'
b'\x86'
b'\x9e'
b'\xfe'
b'\x9e'
b'\xf8'
b'\x9e'
b'\x00'
b'\x98'
b'\x80'
b'\xe6'
b'\x9e'
b'\xe6'
b'\x9e'
b'\x00'
b'\x06'
b'\x9e'
b'f'
b'\x06'
b'~'
b'f'
b'f'
b'\x18'
b'\x06'
b'\xe6'
b'\x80'
Однако я ожидаю, что результат будет "Initialization Complete!"
PS Это реализация UART
void uart_send_byte(unsigned char byte)
{
while(!(UCSR1A&(1<<UDRE1)));
UDR1 = byte;
}
void uart_send_string(unsigned char *str, unsigned char len)
{
int i;
for(i=0;i<len;i++) {
if(!(*(str+i)))
break;
uart_send_byte(*(str+i));
}
}