找回密码
 注册
查看: 490|回复: 0

这样要求的串口该如何设置?

[复制链接]
发表于 2005-7-16 21:02:55 | 显示全部楼层 |阅读模式
我要把一个VC写的东东改到linux下面,这个东东是关于串口通讯的。
VC下面的设置是这样的:
DCB dcb;
GetCommState(hCom, &dcb);
dcb.BaudRate = 115200;
dcb.ByteSize = 8;
dcb.Parity = 0;
dcb.StopBits = 2;
SetCommState(hCom, &dcb);

COMMTIMEOUTS timeOuts;
GetCommTimeouts(hCom, &timeOuts);
timeOuts.ReadTotalTimeoutMultiplier = 100;
timeOuts.WriteTotalTimeoutConstant = 100;
SetCommTimeouts(hCom,&timeOuts);
//////////////////////////////////////////////////////////////////////////////


我是这样理解的:
波特率 115200
数据位 8位
没有校验
停止位 2位

这两个我不怎么明白
timeOuts.ReadTotalTimeoutMultiplier = 100;
timeOuts.WriteTotalTimeoutConstant = 100;
///////////////////////////////////////////////////////////////////////////////



我在linux下面是这样设置的
使用raw方式
termios tpt;
g_fd = open("/dev/ttyS0", O_RDWR );//期间我尝试加了选项  | O_NOCTTY
if(g_fd == -1)
    return false;

tcgetattr(g_fd, &tpt);

tpt.c_cflag |= (CLOCAL | CREAD);

//8 data bits
tpt.c_cflag &= ~CSIZE;
tpt.c_cflag |= CS8;

//no check       
tpt.c_cflag &= ~PARENB;
tpt.c_iflag &= ~INPCK;//期间我尝试把此句注释掉,也是不行
       
//2 stop bits
tpt.c_cflag |= CSTOPB;
       
tpt.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
tpt.c_oflag &= ~OPOST;
tpt.c_oflag &= ~VTDLY;
tpt.c_iflag &= ~(IXON | IXOFF | IXANY);
       
tpt.c_cc[VTIME] = 1;
tpt.c_cc[VMIN] = 0;
       
cfsetispeed(&tpt, B115200);
cfsetospeed(&tpt, B115200);

tcsetattr(g_fd, TCSANOW, &tpt);

发现通讯有问题.
///////////////////////////////////////////////////////////////////


请大家帮忙看看
1。我对vc的设置理解是否有误?
2。我在linux的设置是否正确?
2。如果出错该如何改?

谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-8 06:10 , Processed in 0.020191 second(s), 15 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表