Почему atmega32 получает только последние 16 символов строки?
Я использую Atmega32 для связи с SIM808. когда модуль отправляет строку, содержащую более 16 символов, atmega32 получает только последние 16 символов. это работает хорошо с меньшим количеством символов. Я использую 16*2 буквенно-цифровой ЖК-дисплей для отображения полученных данных. Я попытался извлечь часть длинной строки, используя strncpy(). Затем я отправил извлеченную часть на LCD, но LCD просто ничего не показывает. Я думаю, что-то не так с AVR, а не с LCD. Что я могу сделать? я написал код c просто с помощью библиотек Codevision UART. вот основной код:
printf("AT+CGPSINF=2\r");
scanf("%s",response);
scanf("%s",response2);
scanf("%s",response3);
scanf("%s",response4);
scanf("%s",response5);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(response);
delay_ms(1000);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(response2);
delay_ms(1000);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(response3);
delay_ms(1000);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(response4);
delay_ms(1000);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(response5);
delay_ms(1000);
strncpy(response3,response3 + 18,26 - 18);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(response3);
delay_ms(1000);
response3 [200] предназначен для получения длинной строки.