Я пишу программу для чтения символов из файла .txt и последовательной отправки этих данных в UART MCU ATMEGA2560.ЖК-дисплей, подключенный к этому MCU, должен отображать символы один за другим в строке.Как только я сталкиваюсь с символом новой строки '\ n', следующая строка строки .txt должна быть напечатана в следующей строке ЖК-дисплея.Теперь проблема, с которой я сталкиваюсь, заключается в том, что хотя я могу печатать символы один за другим на ЖК-дисплее, символ новой строки не перемещает курсор в начало следующей строки.Вместо этого японский (или я не уверен) символ печатается на своем месте, и символы следующей строки печатаются в той же строке, что и другие.Мне нужна только помощь в получении новой строки, которая будет рассматриваться на ЖК-дисплее как команда / запрос, чтобы курсор перемещался на следующую строку вместо печати случайного специального символа в той же строке.
У меня есть серийночитать символы из текстового файла, используя pySerial.Я сделал соответствующую кодировку и работаю в Windows 10. Я также записал символы по одному на UART.Это часть кода, которая выполняет последовательную запись с необходимой кодировкой.Я не уверен, что именно здесь я ошибаюсь.
with open(args.file) as f:
for line in f:
for ch in line:
serialPort.write(ch.encode())
В коде C данные принимаются последовательно, а полученные символы сохраняются в переменной.Я пытался добавить персонажей, но я думаю, что это вызывает проблему.
volatile unsigned char data;
unsigned char h[] ;
//Function to print string on LCD
void lcd_string(char *str)
{
while(*str != '\0')
{
lcd_wr_char(*str);
str++;
}
}
void append(char* s, char c)
{
int len = strlen(s);
s[len]=c;
s[len+1]='\0';
}
SIGNAL(SIG_USART2_RECV) // ISR for receive complete interrupt
{
data = UDR2;
UDR2 = data;
append(h,data);
}
//The main program which has to do the job.
int main(void)
{
init_devices();
lcd_set_4bit();
lcd_init();
while(1)
{
lcd_cursor(1,1);
lcd_string(h);
}
}
Последовательные данные, передаваемые в UART, имеют этот формат '11, 23, 8 \ nC1, A5, F3 # 'Хеш указывает конец последовательных данных.
Вкл.ЖК-дисплей должен отображаться следующим образом:
11, 23, 8
C1, A5, F3
Любая помощь приветствуется.Спасибо.