没有合适的资源?快使用搜索试试~ 我知道了~
linux串口驱动 简单 清晰
1星 需积分: 9 13 下载量 51 浏览量
2012-01-13
16:28:03
上传
评论 1
收藏 72KB DOC 举报
温馨提示
试读
11页
linux串口驱动的编程 挺简单的linux串口驱动的编程 挺简单的
资源推荐
资源详情
资源评论
计算机串口的引脚说明
序号 信号名称 符号 流向 功能
2
发送数据
TXD DTE→DCE
DTE 发送串行数据
3
接收数据
RXD DTE←DCE
DTE接收串行数据
4
请求发送
RTS DTE→DCE
DTE请求DCE将线路切
换到发送方式
5
允许发送
CTS DTE←DCE
DCE告诉DTE线路已接
通可以发送数据
6
数据设备准备好
DSR DTE←DCE
DCE准备好
7
信号地
信号公共地
8
载波检测
DCD DTE←DCE
表示DCE接收到远程载波
20
数据终端准备好
DTR DTE→DCE
DTE准备好
22
振铃指示
RI DTE←DCE
表示DCE与线路接通,出
现振铃
串口操作
串口操作需要的头文件
#include<stdio.h>/*标准输入输出定义*/
#include<stdlib.h>/*标准函数库定义*/
#include<unistd.h>/*Unix标准函数定义*/
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>/*文件控制定义*/
#include<termios.h>/*PPSIX终端控制定义*/
#include<errno.h>/*错误号定义*/
打开串口
在Linux下串口文件是位于/dev下的
串口一为/dev/ttyS0
串口二为/dev/ttyS1
打开串口是通过使用标准的文件打开函数操作:
intfd;
/*以读写方式打开串口*/
fd=open("/dev/ttyS0",O_RDWR);
if(-1==fd){
/*不能打开串口一*/
perror("提示错误!");
}
设置串口
最基本的设置串口包括波特率设置,效验位和停止位设置。
串口的设置主要是设置structtermios结构体的各成员值。
structtermio
{ unsignedshortc_iflag; /*输入模式标志*/
unsignedshortc_oflag; /*输出模式标志*/
unsignedshortc_cflag; /*控制模式标志*/
unsignedshortc_lflag; /*localmodeflags*/
unsignedcharc_line; /*linediscipline*/
unsignedcharc_cc[NCC];/*controlcharacters*/
};
设置这个结构体很复杂,我这里就只说说常见的一些设置:
波特率设置
下面是修改波特率的代码:
structtermiosOpt;
tcgetattr(fd,&Opt);
cfsetispeed(&Opt,B19200);/*设置为 19200Bps*/
cfsetospeed(&Opt,B19200);
tcsetattr(fd,TCANOW,&Opt);
设置波特率的例子函数:
/**
*@brief设置串口通信速率
*@paramfd类型int打开串口的文件句柄
*@paramspeed类型int串口速度
*@returnvoid
*/
intspeed_arr[]={B38400,B19200,B9600,B4800,B2400,B1200,B300,
B38400,B19200,B9600,B4800,B2400,B1200,B300,};
intname_arr[]={38400,19200,9600,4800,2400,1200,300,38400,
19200,9600,4800,2400,1200,300,};
voidset_speed(intfd,intspeed){
inti;
intstatus;
structtermiosOpt;
tcgetattr(fd,&Opt);
for(i=0;i<sizeof(speed_arr)/sizeof(int);i++){
if(speed==name_arr[i]){
剩余10页未读,继续阅读
资源评论
- jnwww2014-05-22垃圾啊,下载不下来
a250901214
- 粉丝: 0
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功