Я программирую микроконтроллер PIC18F4455, используя PIC C. Я использую файл заголовка USB_CDC.h. У меня на компьютере есть программа, отправляющая строку типа "W250025". Однако, когда я использую usb_cdc_getc (), чтобы получить первый символ, он зависает. Иногда программа отправляет только 'T', поэтому я действительно хочу получить первый символ.
Почему мой код никогда не выполняется раньше, чем полученный = usb_cdc_getc (); когда я отправляю "W250025"?
if (usb_cdc_kbhit())
{
//printf(lcd_putc, "Check 3"); delay_ms(3000); printf(lcd_putc, "\f");
received = usb_cdc_getc();
printf(lcd_putc, "Received "); lcd_putc(received); delay_ms(3000); printf(lcd_putc, "\f");
if (received == 'W'){ //waveform
disable_interrupts(INT_TIMER1);
set_adc_channel(0);
load_and_print_array(read_into_int(), read_into_int());}
else if (received == 'T'){ //temperature
set_adc_channel(1);
enable_interrupts(INT_TIMER1);}
}