|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
各位兄弟,我在S3C2410的ARM板进行Linux下的串品通信,我是用C语言书写CGI程序,程序中有波特率的设置问题,其设置波特率的函数是cfsetispeed(&Opt,B9600),cfsetospeed(&Opt,B9600).我现在是设定程序的波特率是9600来对ARM板中的串口1来进行操作,但我在别一台机器上,用串口调试助理发现,不管我程序中如何设定波特率,接收端只要不是115200接收,接收到的内容都是错误的,但是只要我让接收端的波特率设为115200,程序里面随便改动波率都无效,接收端都收到正确有字符。
难道程序中无法修改波特率?比较奇怪,请高手赐教。
我的部分函数代码是
struct termios Opt;
tcgetattr(fd,&Opt);
cfsetispeed(&Opt,B9600);
cfsetospeed(&Opt,speed);
tcsetattr(fd,TCSANOW,&Opt);
Opt.c_cflat=CRTSCTS|CS8|CLOCAL|CREAD;
Opt.c_iflag=0;
Opt.c_oflag=0;
Opt.c_lflag=0;
我的Linux内核版本是2.6.13的Fedcora,交叉编译器cross 2.95.3版本
请各位帮忙!!小弟先谢过了。 |
|