我正在尝试使用C通过串口将字符从pic32处理器回显到终端仿真器。用户将被提示输入一个字符串,所发生的一切都是当用户键入时,字符将出现在屏幕上。这仅仅是为了设置一个初始程序,该初始程序稍后可用于用户的实时菜单选择。示例如下:
main()
{
// 1. init the console serial port
initU2();
// 2. text prompt
clrscr();
home();
fputs("Enter some text: ", stdout);
puts(stdout);
// 3. main loop
while (1)
{
// 3.1 read a full line of text
getsn(stdout, sizeof(stdout));
// 3.2 send a string to the serial port
puts(stdout);
} // main loop
} // main
下面是我在命令行中得到的结果(不管用户是否输入):
Enter some text: ÿÿÿÿ
我可以简单地将字符回显到终端程序显示中,但是,如果我需要让用户键入字符,C程序似乎没有响应。任何帮助都将不胜感激!
发布于 2011-11-06 03:47:14
你写道:
fputs("Enter some text: ", stdout);
puts(stdout);
我认为你对看跌期权的调用是无效的。在普通的C库中,puts
期望传递一个指向字符串的指针,但您向它传递的是stdout
,这不是一个字符串。因此,您会看到串行端口上传输了一些垃圾字符。
尝试删除puts
行或将代码更改为:
puts("Enter some text: ");
https://stackoverflow.com/questions/8024928
复制相似问题