QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 671|回复: 6

请教斑竹和高手

[复制链接]
发表于 2004-7-29 18:12:19 | 显示全部楼层 |阅读模式
打开串口:
fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY ); //打开COM1


初始化串口:
int setup_com(int fd){
struct termios options;
tcgetattr(fd, &options);
/* Set the baud rates to 9600...*/
cfsetispeed(&options, B9600);
cfsetospeed(&options, B9600);
/* Enable the receiver and set local mode...*/
options.c_cflag |= (CLOCAL | CREAD);
/* Set c_cflag options.*/
options.c_cflag &= ~PARENB; //无校验
options.c_cflag &= ~PARODD;
options.c_cflag &= ~CSTOPB; //1个停止位
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8; //8个数据位
/* Set c_iflag input options */
options.c_iflag &=~(IXON | IXOFF | IXANY);
options.c_iflag &=~(INLCR | IGNCR | ICRNL);
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
/* Set c_oflag output options */
options.c_oflag &= ~OPOST; //RAW数据模式
/* Set the timeout options */
options.c_cc[VMIN] = 0;
options.c_cc[VTIME] = 0;
tcsetattr(fd, TCSANOW, &options); //设置COM参数并立即生效
return 1;
}

其中:
c_cflag : 控制选项
c_lflag : 线选项
c_iflag : 输入选项
c_oflag :输出选项
c_cc :控制字符
c_ispeed :输入数据波特率
c_ospeed :输出数据波特率
c_cflag: CLOCAL 本地模式,不改变端口的所有者
CREAD 表示使能数据接收器
PARENB 表示偶校验
PARODD 表示奇校验
CSTOPB 使用两个停止位
CSIZE 对数据的bit使用掩码
CS8 数据宽度是8bit
c_lflag: ICANON 使能规范输入,否则使用原始数据(本文使用)
ECHO 回送(echo)输入数据
ECHOE 回送擦除字符
ISIG 使能SIGINTR,SIGSUSP, SIGDSUSP和 SIGQUIT 信号
c_iflag: IXON 使能输出软件控制
IXOFF 使能输入软件控制
IXANY 允许任何字符再次开启数据流
INLCR 把字符NL(0A)映射到CR(0D)
IGNCR 忽略字符CR(0D)
ICRNL 把CR(0D)映射成字符NR(0A)
c_oflag: OPOST 输出后处理,如果不设置表示原始数据(本文使用原始数据raw)
c_cc[VMIN]: 最少可读数据
c_cc[VTIME]: 等待数据时间(10秒的倍数)

write(fd,"AT\015\012",4 );
write(fd,"AT+CMGF=1\015\012",11 );
write(fd,"AT+CMGS=\042+2145551212\042,129\015\012", 27);
write(fd,"This is a test. WOW!",19);

close(fd);
 楼主| 发表于 2004-7-29 18:13:25 | 显示全部楼层
O_RDWR | O_NOCTTY | O_NDELAY这个是什么意思!
回复

使用道具 举报

发表于 2004-7-29 18:27:20 | 显示全部楼层
文件打开的属性:
O_RDWR : 可读写
O_NOCTTY :如果第一个参数是一个终端设备,不将这个终端设备分配为本进程的控制终端
O_NDELAY: 将打开文件(第一个参数所指)与后续的I/O都设为非阻塞模式。
回复

使用道具 举报

发表于 2004-7-29 20:04:23 | 显示全部楼层
更详细的资料请参考:
http://digilander.libero.it/robang/rubrica/serial.htm#CONTENTS
回复

使用道具 举报

 楼主| 发表于 2004-7-29 20:31:40 | 显示全部楼层
谢谢!!
回复

使用道具 举报

 楼主| 发表于 2004-7-29 20:32:47 | 显示全部楼层
英文不怎么好.
有点吃力.
回复

使用道具 举报

 楼主| 发表于 2004-7-29 20:35:15 | 显示全部楼层
[quote:83acac95c9="llc"]更详细的资料请参考:
http://digilander.libero.it/robang/rubrica/serial.htm#CONTENTS[/quote]
我现在学Linux下串口编程入门
怎么入门啊!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 18:16 , Processed in 0.042621 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表