首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C++中将字符回显到串行端口

在C++中将字符回显到串行端口
EN

Stack Overflow用户
提问于 2011-11-06 10:53:21
回答 1查看 440关注 0票数 1

我正在尝试使用C通过串口将字符从pic32处理器回显到终端仿真器。用户将被提示输入一个字符串,所发生的一切都是当用户键入时,字符将出现在屏幕上。这仅仅是为了设置一个初始程序,该初始程序稍后可用于用户的实时菜单选择。示例如下:

代码语言:javascript
运行
复制
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程序似乎没有响应。任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-06 11:47:14

你写道:

代码语言:javascript
运行
复制
fputs("Enter some text: ", stdout);
puts(stdout);

我认为你对看跌期权的调用是无效的。在普通的C库中,puts期望传递一个指向字符串的指针,但您向它传递的是stdout,这不是一个字符串。因此,您会看到串行端口上传输了一些垃圾字符。

尝试删除puts行或将代码更改为:

代码语言:javascript
运行
复制
puts("Enter some text: ");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8024928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档