如何控制数据载波检测电压?
我使用TIOCMSET,但它不起作用:

int status;
int fd;
/* OPEN Connection */
if ((fd = open("/dev/ttyS0",O_RDWR)) < 0)
{
    printf("Couldn't open ttyS0\n");
    exit(1);
}
// turn on DCD
status |= TIOCM_CAR;
ioctl(fd, TIOCMSET, &status);

dcd管脚上的电压永远不会改变,但dtr和rts管脚的电压会改变。
我可以在linux中这样做吗?

最佳答案

不,你不能那样做。
DCD是数据通信设备(如调制解调器)的输出和数据终端设备(如典型计算机)的输入。
输入可以被读取,但不能被驱动。
例外情况是,如果您运行的是类似于嵌入式板的linux,该板被设计为外围设备,其串行端口可能被连接为DCE而不是DTE,以允许在没有空调制解调器电缆的情况下直接连接到PC。但是,在这种情况下,您所驱动的信号在软件中可能不会被称为DCD,除非软接口也反映了DCE的角色。

关于c - 如何在Linux中控制dcd,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27006869/

10-13 07:29