当前位置: 技术问答>linux和unix
ARM s3c2440串口硬件流控
来源: 互联网 发布时间:2017-03-16
本文导语: 问题在设置板子到串口0可以设置CRTSCTS(说明应该支持硬件流控),在程序中设置RTS引脚有效信号(低电平),示波器测试RTS信号没有变化,一直是5.5V左右。 cfsetispeed(&newOpt,B9600); cfsetospeed(&newOpt,B9600)...
问题在设置板子到串口0可以设置CRTSCTS(说明应该支持硬件流控),在程序中设置RTS引脚有效信号(低电平),示波器测试RTS信号没有变化,一直是5.5V左右。
cfsetispeed(&newOpt,B9600);
cfsetospeed(&newOpt,B9600);
newOpt.c_cflag |= (CLOCAL|CREAD);
newOpt.c_cflag &=~CSIZE;
newOpt.c_cflag |= CS8;
newOpt.c_cflag &= ~PARENB;
newOpt.c_iflag &= ~INPCK;
newOpt.c_cflag &= ~CSTOPB;
newOpt.c_cc[VTIME] = 0;
newOpt.c_cc[VMIN] = 0;
newOpt.c_iflag |= IGNPAR|ICRNL;
newOpt.c_oflag |= OPOST;
newOpt.c_iflag &= ~(IXON|IXOFF|IXANY);
newOpt.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
newOpt.c_cflag |=CRTSCTS;
tcsetattr(fd, TCSANOW, &newOpt);
/*unsigned int controll;
ioctl(fd,TIOCMGET,&controll);
ioctl(fd,TIOCMGET,&controll);
controll &= ~TIOCM_RTS;
ioctl(fd,TIOCMSET,&controll);
controll |= TIOCM_RTS;
ioctl(fd,TIOCMSET,&controll);*/
|
首先看手册,这个cpu的串口是否支持硬件流控
其次,如果cpu的串口是ttl电平,转成rs232时,是否把硬件流控脚也处理了
以上都排除,除了cts、rts,试试dtr、dsr
其次,如果cpu的串口是ttl电平,转成rs232时,是否把硬件流控脚也处理了
以上都排除,除了cts、rts,试试dtr、dsr
|
当然,最有可能的就是第二条。一般设计都懒得把rts cts从ttl转rs232,直接在ttl侧(cpu引脚)就短接了
看原理图可知
看原理图可知
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。