fgets()没有响应PuTTY命令

时间:2018-06-15 15:43:22

标签: c embedded putty fgets

使用PuTTY和fgets()与嵌入式项目连接时遇到了一些问题。我要求用户在PuTTY终端输入,并根据命令运行寄存器读/写。

我认为问题在于PuTTY,因为代码适用于Tera Term(我想使用PuTTY,因此我可以使用本地行编辑功能)。

相关的代码部分很简单:

int main(void) {
    bool connected = false;
    bool quit = false;
    char strcom[100];
    /* other variable declarations */

    connected = device_good(); // read version register, if correct, return true

    if (connected) {
        printf("Connected to LAN8770 device...\r\n");
    } else {
        quit = true;
    }

    while (!quit) {
        printf(">> ");
        fgets(strcom, sizeof(strcom), stdin);

        /* rest of code and input processing */
    }
}

调试时,我发现代码永远不会超出fgets()调用。但是,我知道PuTTY可以从处理器接收信息,因为我确实看到了printf()块中if (connected)语句的输出。

我已经读过PuTTY有时只会发送回车符{\r),这对fgets()不起作用,但我检查了“每个CR中隐含的LF”设置:< / p>

PuTTY Terminal Settings

PuTTY中是否有我失踪的设置?或者我的代码是一个问题,由于某种原因,导致与PuTTY的不当行为?

任何建议/想法都表示赞赏!

-Sean

编辑:请注意,“每个LF中的隐式CR”选项似乎也不起作用。

1 个答案:

答案 0 :(得分:0)

按下Enter键时,PuTTY似乎不会发送换行符。它只发送一个回车。将Ctrl+J附加到该行的末尾可以完成工作,但这不是一个很好的解决方案。感谢Eugene Sh。用于故障排除技术。

正如克利福德指出的那样,这个问题并不是一个真正的问题。我投票决定关闭它。

相关问题