我試圖編程使用C/C++在Linux中使用硬件握手的串行通信。實現握手的信號是CTS(清除發送)和RTS(請求發送)。目前我設置的CTS信號的功能如下所示:串行編程(硬件握手)
int setCTS(int fd, int value) {
int status;
ioctl(fd, TIOCMGET, &status); // get the current port status
if (value)
status |= TIOCM_CTS; // rise the CTS bit
else
status &= ~TIOCM_CTS; // drop the CTS bit
ioctl(fd, TIOCMSET, $status); // set the modified status
return 0;
}
其中FD是港口和值文件描述符是信號要設置的值。要根據http://www.easysw.com/~mike/serial/serial.html#5_1對此函數進行編碼。
問題是gcc不能識別示例中使用的任何常量。有什麼建議麼?
- 更新 -
我找到了答案。看另一個例子,sys/ioctl.h
聲明常量。
我發現grep對於回答這些問題很有用 - 只需搜索包含路徑中的所有文件即可。 – 2009-08-14 19:21:35