Не удается получить символ '\ 0' через UART - PullRequest
1 голос
/ 12 июня 2019

В настоящее время я работаю над проектом, который требует от меня отправки инструкций из 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) для этой задачи, но даже при этом я не могу ничего вернуть.

...