См. http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html для получения информации о методе FDEV_SETUP_STREAM настройки stdio. В частности, то, что вы указали как «КЛАВИАТУРА» в приведенном выше примере, должно быть функцией, обеспечивающей ввод с клавиатуры. То, как вы написали свой код, означает, что он ищет такую функцию:
int KEYBOARD(FILE *stream)
{
return 'A';
}
Это будет поток, который всегда возвращает букву A
, например. Конечно, вам нужно заполнить эту функцию любым кодом, необходимым для чтения с любого аппаратного обеспечения клавиатуры, которое вы подключили к своему микроконтроллеру.
В руководстве avr-libc, указанном выше, описаны и другие значения, которые вы можете вернуть из этой функции, например, _FDEV_ERR (если произошла ошибка) или _FDEV_EOF (если это конец файла, т. Е. Больше нет ввода читать).