1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Linux 串口编程(C语言)

Linux 串口编程(C语言)

时间:2018-11-08 08:40:59

相关推荐

Linux 串口编程(C语言)

简述:串口的基本操作包括读和写,需要设置好串口的属性,包括串口的波特率,数据位,奇偶校验,停止位等内容。串口设备文件:/dev/ttySn,如果是USB扩展出来的则为/dev/ttyUSBn包含头文件:termios.h打开 串口 open

在打开串口时,除了需要用到 O_RDWR 选项标志外,通常还需要使用 O_NOCTTY,

目的是告诉 Linux“本程序不作为串口的‘控制终端’”。如果不使用该选项,一些输入字符

可能会影响进程的运行(如一些产生中断信号的键盘输入字符等)。

发送数据:write 读取数据 read

串口属性设置:一般需要设置的属性分为波特率,数据位,奇偶校验等,这些属于是 控制标志,通过 termios 结构的 c_cflag 成员可设置;而对于termios是可以设置输入标志,输出标志,本地标志以及控制标志的,

struct termios {tcflag_t c_cflag /* 控制标志 */tcflag_t c_iflag; /* 输入标志 */tcflag_t c_oflag; /* 输出标志 */tcflag_t c_lflag; /* 本地标志 */tcflag_t c_cc[NCCS]; /* 控制字符 */};

输入标志 c_iflag成员负责控制串口对于输入数据作处理;

获取和设置终端属性:

使用函数 tcgetattr()可以获取串口设备的 termios 结构。该函数原型如下:

int tcgetattr(int fd, struct termios *termptr);

函数执行成功返回 0,串口设备的 termios 结构由 temptr 参数返回;若出错则返回-1。

。串口属性设置完成后,

可通过 tcsetattr()函数把新的属性设置应用到串口中。tcsetattr()函数原型如下:

int tcsetattr(int fd, int opt, const struct termios *termptr);

其中的 opt参数,就是设置 控制标志的,以下设置波特率,奇偶校验等内容,均是通过opt进行的。

设置波特率的函数有2个,分别可以设置输入波特率和输出波特率

cfsetispeed(&opt, B115200);cfsetospeed(&opt, B115200);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。