1

我正在尝试创建和“优雅”的方式来实时显示用户输入到自定义内核中的内容,对于 68hc12,我正在研究。

#include "hc12sci.h"
#include "iomanip.h"

int main()
{
    Hc12Sci hc12sci(sci0,16,36); // serial port, rxlen, txlen
    ostream os(&hc12sci);
    istream is(&hc12sci);

    char cmd[16];
    char c;

    os << "hello world!" << endl;
        while(1)
    {
            for(int i = 0; i<=15; i++)
        {
                  is >> c
              cmd[i] = c;
              os << c << flush;
                  if(c == '\r')          // test for carriage return
                        os << cmd << endl;
             }
             os << endl;
    }                      
    return 0;

我敢肯定,许多问题是它似乎永远不会输入回车 if 语句。我正在 Ubuntu 中构建它,尽管我在 if 语句中做错了什么?如果您需要更多信息,请告诉我。谢谢。

4

1 回答 1

1

我可以看到的第一个问题是您正在检查回车。Ubuntu/Unix 不使用回车作为行尾。相反,它使用换行符:'\n' (0x0A)。

所以尝试将其更改为:

if ( c == '\n')
于 2013-02-18T05:12:45.220 回答