我正在尝试使用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程序似乎没有响应。任何帮助将不胜感激!
答案 0 :(得分:3)
您写道:
fputs("Enter some text: ", stdout);
puts(stdout);
我认为你对看跌期权的看法无效。在普通的C库puts
期望传递一个指向字符串的指针,但是你将stdout
传递给它,这不是一个字符串。结果,您看到一些垃圾字符在串行端口上传输。
尝试删除puts
行或将代码更改为:
puts("Enter some text: ");