当前位置: 技术问答>linux和unix
linux下串口发送数据用串口精灵接受不到或为全零
来源: 互联网 发布时间:2016-02-21
本文导语: 请问这是为什么啊,我想应该是termios结构的设置问题,要这么设置才能在串口接受正确呢,自己linux下发送再接受没问题,用串口精灵接收就不正确了,我用minicom发送是正确的,能告诉我怎么看minicom程序的termios设置...
请问这是为什么啊,我想应该是termios结构的设置问题,要这么设置才能在串口接受正确呢,自己linux下发送再接受没问题,用串口精灵接收就不正确了,我用minicom发送是正确的,能告诉我怎么看minicom程序的termios设置吗?谢谢了,急,qq24646533,希望得到您的帮忙
|
请把问题描述清楚了。什么叫“自己linux下发送再接受没问题”?
设置串口属性一般有3个步骤
struct termios option;
A: tcgetattr(fd,&option) //fd是打开串口设备的文件描述符,option是一个termios结构
//通过fd得到其属性赋予option中。
B: 设置option的参数,比如数据位,停止位,奇偶校验等。具体请参考termios的详细结构
C: tcsetattr(fd,xxxxx,&option)//将设置完成之后的option应用于fd表示的串口中,xxxxx为一些设置参数,告诉系统这些设置何时生效,一般为TCANOW,表示设置即刻生效。
另外
设置波特率可以这样
设置串口属性一般有3个步骤
struct termios option;
A: tcgetattr(fd,&option) //fd是打开串口设备的文件描述符,option是一个termios结构
//通过fd得到其属性赋予option中。
B: 设置option的参数,比如数据位,停止位,奇偶校验等。具体请参考termios的详细结构
C: tcsetattr(fd,xxxxx,&option)//将设置完成之后的option应用于fd表示的串口中,xxxxx为一些设置参数,告诉系统这些设置何时生效,一般为TCANOW,表示设置即刻生效。
另外
设置波特率可以这样
struct termios option;
tcgetattr(fd, &option);
cfsetispeed(&option,B19200); //设置为19200Bps
cfsetospeed(&option,B19200);
tcsetattr(fd,TCANOW,&option); //设置即刻生效