Как читать прямо из стандартного ввода в C?

Я хочу сделать функцию, которая передает ввод в uart на микроконтроллере наоборот. Для этого мне нужно создать функцию, которая проверяет, есть ли ввод uart и ввод stdin. Мое текущее решение - запустить 2 функции в 2 ядрах Nano RP2040 Connect. Проблема в том, что я получаю ошибку тайм-аута, когда пытаюсь подключиться. Код ниже:

      void pass_to_nina(){
    char c;
    while(1){
        c = getchar();
        if(c == PICO_ERROR_TIMEOUT)
        {
            uart_write_blocking(uart1, &c, 1);
        }
    }
}

void pass_to_usb(){
    char a;
    for(;;){
        if(uart_is_readable_within_us(uart1, 10)){
        a = uart_getc(uart1);
        putchar(a);
        fflush(stdout);}
    }
}

Есть ли способ получить байт сразу из стандартного ввода без подсказки?

PS: я использую pico-sdk. Stdio.h предназначен для последовательной связи по USB, а hardware_uart - для связи с esp.

0 ответов

Другие вопросы по тегам