欢迎来到天天文库
浏览记录
ID:38747524
大小:80.50 KB
页数:9页
时间:2019-06-18
《详解linux下的串口通讯开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、详解linux下的串口通讯开发串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是RS-232-C接口(又称EIARS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。串口通讯指的是计算机依次以位(bit)为单位来传送数据,串行通讯使用的范围很广,在嵌入式系统开发过程中串口通讯也经常用到通讯方式之一。Linux对所有设备的访问是通过设备文件来进行的,串口也是这样,为了访问串口,只需打开其设备文件即可操作串口设备。在linux系统下面,每一个
2、串口设备都有设备文件与其关联,设备文件位于系统的/dev目录下面。如linux下的/ttyS0,/ttyS1分别表示的是串口1和串口2。下面来详细介绍linux下是如何使用串口的: 1. 串口操作需要用到的头文件#include /*标准输入输出定义*/#include /*标准函数库定义*/#include /*Unix标准函数定义*/#include #include #i
3、nclude /*文件控制定义*/#include /*POSIX终端控制定义*/#include /*错误号定义*/#include /*字符串功能函数*/2. 串口通讯波特率设置波特率的设置定义在,其包含在头文件里。常用的波特率常数如下:B0-------à0 B1800-------à1800B50-----à50
4、 B2400------à2400B75-----à75 B4800------à4800B110----à110 B9600------à9600B134----à134.5 B19200-----à19200B200----à200 B38400------à38400B300----à300 B57600------à57600B600----à600
5、 B76800------à76800B1200---à1200 B115200-----à115200假定程序中想要设置通讯的波特率,使用cfsetispeed()和cfsetospeed()函数来操作,获取波特率信息是通过cfgetispeed()和cfgetospeed()函数来完成的。比如可以这样来指定串口通讯的波特率:#include //头文件定义.......................structtermiosopt; /*定义指向termios
6、结构类型的指针opt*/ /***************以下设置通讯波特率****************/cfsetispeed(&opt,B9600);/*指定输入波特率,9600bps*/cfsetospeed(&opt,B9600);/*指定输出波特率,9600bps*//************************************************/...................一般来说,输入、输出的波特率应该是一致的。3. 串口属性配置在程序中,很容易配置串口的属性,这些属性定义在结构体structterm
7、ios中。为在程序中使用该结构体,需要包含文件,该头文件定义了结构体structtermios。该结构体定义如下:#defineNCCS19structtermios{ tcflag_tc_iflag; /*输入参数*/ tcflag_tc_oflag; /*输出参数*/ tcflag_tc_cflag; /*控制参数*/ tcflag_tc_ispeed;
8、 /*输入波特率*/tcflag_tc_ospeed;
此文档下载收益归作者所有