Linux 串口应用编程

关于串口编程如下两篇文章比较详细;

http://blog.csdn.net/mtv0312/article/details/6599162

http://blog.chinaunix.net/uid-21411227-id-1826767.html

 

串口操作就是对termios 的设置,头文件#include <termios.h> /*PPSIX 终端控制定义*/

struct termios 结构体的各成员值。

struct termio

{

unsigned short c_iflag; /* 输入模式标志 */

unsigned short c_oflag; /* 输出模式标志 */

unsigned short c_cflag; /* 控制模式标志*/

unsigned short c_lflag; /* local mode flags */

unsigned char c_line; /* line discipline */

unsigned char c_cc[NCC]; /* control characters */

};

 

项目中串口设置情况:

1. 打开串口

m_fd = open(m_devname, O_RDWR);  //以读写方式打开串口

2.得到串口参数:

struct termios term;

tcgetattr(m_fd, &term)

3.设置串口参数:

    term.c_lflag &= ~(ICANON | ECHO | ISIG);  //选择原始输入,根本不会被处理。输入字符只是被原封不动的接收。

    term.c_iflag &= ~(ISTRIP | IUCLC | IGNCR | ICRNL | INLCR | IXON | PARMRK);  控制从端口上收到的字符的输入过程
    term.c_oflag &= ~OPOST;         //选择原始输出,而不是加工过的输出
    cfsetispeed(&term, B115200);  //设置波特率

4. 将设置好的参数写入串口

    tcsetattr(m_fd, TCSAFLUSH, &term);

TCSANOW:  不等数据传输完毕就立即改变属性

TCSADRAIN:等待所有数据传输结束才改变属性

TCSAFLUSH:清空输入输出缓冲区才改变属性

5. tcflush函数刷清(扔掉)输入缓存。丢弃开始的一段缓冲区

见:http://blog.csdn.net/a4150902/article/details/7584676

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值