在下面的代码中
int ctr,fd,j1;
fd =open("/dev/ttyS0", O_RDWR | O_NOCTTY);
j1=ioctl(fd, TIOCMGET, &ctr);
if(ctr & TIOCM_DTR)
{
ctr&=~TIOCM_DTR;
j2=ioctl(fd,TIOCMSET,&ctr);
}
else
{
ctr=ctr|TIOCM_DTR;
j4=ioctl(fd,TIOCMSET,&ctr);
}
1)有人可以解释一下ctr = ctr | TIOCM_DTR呢?它只是改变了DTR引脚的状态吗?因为ctr只是一个intiger而TIOCM_DTR有点,对吧?
2)我已将DTR引脚配置为切换,但在测试时,即使RTS引脚也在切换。
3)现在,如果我在切换之间设置一个时间段,如果时间段介于1毫秒到50毫秒之间,超过50毫秒,则在DSO中查看的时间段在50毫秒到100毫秒之间变化甚至在微秒范围内也有一段时间。(切换之间的这段时间是通过不同的定时器程序生成的,这样每当定时器溢出时,调用切换程序)
答案 0 :(得分:0)
1)" ctr = ctr | TIOCM_DTR"将ctr的相关位设置为1.