【发布时间】:2017-02-26 10:34:36
【问题描述】:
我有一个我似乎无法弄清楚的问题:
我通过蓝牙在我的 RPi 和我的 PC 之间使用 Putty 进行串行通信。 我使用以下代码将文本从我的 RPi 发送到 Putty:
ssize_t serial::writeSerialPort(char const *string)
{
/*
write a string to the serial connection
*/
ssize_t result = write(fd, string, strlen(string));
tcflush(fd, TCOFLUSH);
if (result != strlen(string))
printf("Failed to write to serial port!\n");
else
printf("Wrote to serial port!\n");
return result;
}
现在奇怪的是,有时文本被发送到 Putty 并且可以工作一段时间。 然后它突然停止工作,过了一会儿又开始工作(都在同一个会话中)。
当我设置断点并调试我的代码时,文本总是在 write() 函数之后(tcflush() 之前)输出。
这当然让我很难找出为什么我有这个“错误”。
结果总是等于strlen(string),所以我很确定它是正确编写的。
谁能指出我正确的方向?
【问题讨论】:
-
C 没有
::。你确定你不是在用 C++ 编程吗? -
我把 tcflush() 换成了 tcdrain() 现在它工作正常了。
标签: c terminal serial-port raspberry-pi3