В настоящее время я работаю над проектом, который требует от меня отправки инструкций из Python в микропроцессор с помощью UART.Однако проблема, с которой я сталкиваюсь, заключается в том, что я не могу определить / получить символ «\ 0» в конце строки, и поэтому у меня нет возможности определить, когда строка заканчивается на стороне микропроцессора.
Я попробовал простое эхо (отправить символ обратно сразу после получения), поэтому я знаю, что связь работает.
Вот функция прерывания для чтения UART:
char data[10];
volatile uint8_t charIndex = 0;
volatile uint8_t dataComplete = 0;
ISR(USART1_RX_vect){
if(dataComplete == 0){
char input = UDR1;
if(input == '\0'){
send('X');
charIndex = 0;
dataComplete = 1;
}
else{
data[charIndex] = input;
charIndex++;
}
}
}
Я ожидаю, что микропроцессор отправит символ X через UART, но этого не происходит.Я не уверен, где проблема.
РЕДАКТИРОВАТЬ: я пытался добавить '\ 0' к '\ r', но у него тот же отрицательный результат.Я также пытался использовать подходящий последовательный коммуникатор (Termite) для этой задачи, но даже при этом я не могу ничего вернуть.