【发布时间】:2011-05-20 15:53:01
【问题描述】:
我正在尝试配置 dsp 和我的计算机之间的串行通信。
dsp 发送一个 16 位计数器的值,每次发送它都会递增。 所以它只是在数......
这是我在电脑上得到的:
3335 3336 3337 3338 36388 46920 16372 46919 3339 3340 3341 3342 36388 46920 16372 46919 3343 3344 4621 3341 36388 46920 ...
所以我们可以看到计数器被突然出现的这 4 个值打断了......
我的程序配置了
fd = open(device.c_str(), O_RDWR | O_NOCTTY | O_NDELAY);
fcntl(fd, F_SETFL, FNDELAY);
termios options;
tcgetattr(fd, &options);
cfsetispeed(&options, B4800);
cfsetospeed(&options, B4800);
options.c_cflag |= (CLOCAL | CREAD | CS8);
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
options.c_iflag |= (IXON | IXOFF | IXANY);
tcsetattr(fd, TCSANOW, &options);
DSP 发送 4800/8N1。
有什么想法吗?
【问题讨论】:
-
从 16 位二进制转换为 ASCII 字符串的值在哪里?在他们通过串口之前还是之后?
标签: c++ serial-port