如何在linux中控制dcd

时间:2014-11-19 00:33:12

标签: c linux serial-port

如何控制数据载波检测的电压? 我使用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中这样做吗?

1 个答案:

答案 0 :(得分:1)

不,你做不到。

DCD是数据通信设备(如调制解调器)和输入到数据终端设备(如典型计算机)的输出。

可以读取输入,但不能驱动。

例外情况是,如果您在嵌入式板上运行Linux,其设计为外设,其串行端口可能连接为DCE而不是DTE,以允许直接连接到PC 而不用零调制解调器电缆。但是,在这种情况下,您驱动的信号可能不会在软件中称为DCD,除非软接口也反映了DCE角色。