我不知道如何从键盘获取用户输入并将这些输入显示到终端仿真器(实际术语)。
我通常会执行以下操作来设置stdin。但是,我确实意识到我不能将KEYBOARD这个词当作流。
FILE receive_str = FDEV_SETUP_STREAM(NULL, KEYBOARD , _FDEV_SETUP_READ);
stdin = &receive_str;
该程序使用Windows 7下的AVR Studio 4.18进行编译,目标是ATmega 32微控制器。
答案 0 :(得分:1)
有关设置stdio的FDEV_SETUP_STREAM方法的信息,请参阅http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html。特别是,您在上面的示例中作为“KEYBOARD”放置的内容应该是提供键盘输入的功能。所以你编写代码的方式意味着它正在寻找这样的函数:
int KEYBOARD(FILE *stream)
{
return 'A';
}
这将是一个始终返回字母A
的流。当然,您可以使用从连接到微控制器的任何键盘硬件读取所需的任何代码来填写该功能。
上面链接的avr-libc手册描述了你可以从这个函数返回的其他值,如_FDEV_ERR(如果发生错误)或_FDEV_EOF(如果它是文件结尾,即没有更多输入阅读)。