Передаю некорый набор символов по UART.
Вроде, все делаю по-человечески, но у меня в ответ на компьютере приходи абсолютно не то, что я хотел...
Вот два куска кода.
1. Обращение к подпрограмме передачи сообщения
_SEI();
UCR = 0x90;
UBRR = 0x9C;
if (UDR == 0xAA)
{
_CLI();
UCR = 0x18;
HistoryTransmit(); // Передача некоторой строчки в UART
SEI_();
}
2. Функция, связанная непосредственно, с передачей одного символа.
void COMWriteChar(unsigned char C)
{
_NOP();
_NOP();
UCR = 0x18;
UDR = C;
// Далее, для проверки, рисую все это на экране дисплея, и посылаю нулевой символ...
ScreenWriteChar©;
UDR = 0;
}
Потом, при приеме на компьютере некоторой строчки, (предположим, в функцию загоняются значения 0xFF, 0xA0, 0x61, 0xB7) получаем в ком порте компьютера значения 0xFF, 0x00, 0x30, 0x00, 0x20, 0x30, 0x30, 0x30.
Где я что делаю не так и как мне получить именно те переменные, которыя я и посылаю.