1,串口操作需要的头文件

#include      /* 标准输入输出定义 */

#include      /* 标准函数库定义 */

#include      /* Unix 标准函数定义 */

#include  

#include  

#include      /* 文件控制定义 */

#include     /*终端控制定义 */

#include      /* 错误号定义 */

2,打开串口

在 Linux 下串口文件是位于/dev下的。串口一为/dev/ttyS0,串口二为/dev/ttyS1。打开串口是通过使用标准的文件打开函数操作:         int fd;  /* 以读写方式打开串口 */

fd = open( "/dev/ttyS0",O_RDWR);

if (-1 == fd)

{

perror(" 提示错误!");       /* 不能打开串口一 */

}

3,串口结构体及参数

串口的设置主要是设置 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 */

};

在这个结构中最为重要的是c_cflag,通过对它的赋值,用户可以设置波特率、字符大小、 数据位、停止位、奇偶校验位和硬件流控等。另外c_iflag 和c_cc 也是比较常用的标志。在此主要对这3 个成员进行详细说明。

(1)c_cflag支持的常量名称

CBAUD 波特率的位掩码

B0 0波特率(放弃DTR)

B1800 1800波特率

B2400 2400波特率

B4800 4800波特率

B9600 9600波特率

B19200 19200波特率

B38400 38400波特率

B57600 57600波特率

B115200 115200波特率

EXTA 外部时钟率

EXTB 外部时钟率

CSIZE 数据位的位掩码

CS5 5个数据位

CS6 6个数据位

CS7 7个数据位

CS8 8个数据位

CSTOPB 2个停止位(不设则是1个停止位)

CREAD 接收使能

PARENB 校验位使能

PARODD 使用奇校验而不使用偶校验

HUPCL 最后关闭时挂线(放弃DTR)

CLOCAL 本地连接(不改变端口所有者)

LOBLK 块作业控制输出

CNET_CTSRTS 硬件流控制使能

(2)c_iflag支持的常量名称

INPCK 奇偶校验使能

IGNPAR 忽略奇偶校验错误

PARMRK 奇偶校验错误掩码

ISTRIP 除去奇偶校验位

IXON 启动出口硬件流控

IXOFF 启动入口软件流控

IXANY 允许字符重新启动流控

IGNBRK 忽略中断情况

BRKINT 当发生中断时发送SIGINT信号

INLCR 将NL映射到CR

IGNCR 忽略CR

ICRNL 将CR映射到NL

IUCLC 将高位情况映射到低位情况

IMAXBEL 当输入太长时回复ECHO

(3)c_cc 支持的常量名称

VINTR 中断控制,对应键为CTRL+C

VQUIT 退出操作,对应键为CRTL+Z

VERASE 删除操作,对应键为Backspace(BS)

VKILL 删除行,对应键为CTRL+U

VEOF 位于文件结尾,对应键为CTRL+D

VEOL 位于行尾,对应键为Carriage return(CR)

VEOL2 位于第二行尾,对应键为Line feed(LF)

VMIN 指定了最少读取的字符数

VTIME 指定了读取每个字符的等待时间

(4)串口控制函数

Tcgetattr 取属性(termios结构)

Tcsetattr 设置属性(termios结构)

cfgetispeed 得到输入速度

Cfgetospeed 得到输出速度

Cfsetispeed 设置输入速度

Cfsetospeed 设置输出速度

Tcdrain 等待所有输出都被传输

tcflow 挂起传输或接收

tcflush 刷清未决输入和/或输出

Tcsendbreak 送BREAK字符

tcgetpgrp 得到前台进程组ID

tcsetpgrp 设置前台进程组ID

4,设置串口

最基本的设置串口包括波特率设置,效验位和停止位设置。验证过的DEMO代码见文章:linux之gcc命令 && 嵌入式linux下的可执行bin:串口读写实例http://blog.csdn.net/zhandoushi1982/article/details/4902136

串口设置波特率linux函数接口,Linux下串口编程之一:基础设置函数相关推荐

  1. linux音频设备接口,linux音频设备驱动读书笔记

    在linux系统中,先后出现了音频设备的两种框架:OSS和ALSA. 针对不同的数字音频子系统,出现了几种微处理器或DSP与音频器件间用于数字转换的接口. 音频设备的硬件接口 (1)PCM接口. (2 ...

  2. 将html文件设置为安卓背景桌面,WinXP下将HTML文档设置为屏保的方法

    WinXP的屏幕保护程序多种多样,很多用户喜欢将一些自己的文档图片等设为屏保,今天我们要向大家介绍的是另一种新方法,将HTML文档设置为屏保,下面大家跟随小编一起设置吧. WinXP系统除将HTML文 ...

  3. 在python中用递归的方法编程_python基础之函数,递归,内置函数

    阅读目录 一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量, ...

  4. python内置高阶函数求导_Python——函数式编程、高阶函数和内置函数,及

    Python--函数式编程.高阶函数及内置函数 函数式编程 一.不可变数据:不用变量保存状态不修改变量 二.第一类对象:函数即"变量" 1.函数名可以当做参数传递 2.返回值可以是 ...

  5. C语言图形编程(绘图函数部分),C语言图形编程(三、绘图函数-02)12

    C语言图形编程(三.绘图函数-02)12 } 84. putimage() 输出图像函数 功能: 函数putimage()将一个先前保存在内存中的图像输出到屏幕上. 用法: 此函数调用方式为void ...

  6. Linux输入密码接口,Linux下搭建接口自动化测试平台

    前言 我们今天来学习一下在Linux下如何搭建基于HttpRunner开发的接口自动化测试平台吧! 需要在Linux上提前准备的环境(下面是本人搭建时的环境): 1,Python 3.6.8 (可参考 ...

  7. linux设置主机路由的接口,linux – 添加到特定主机的路由会发出特定的接口

    我有一台带有两个NIC的Red Had Linux机器: > eth0 – 10.0.1.253 | 255.0.0.0 > eth1 – 10.0.1.1 | 255.255.255.0 ...

  8. linux下redis权限,Linux(Centos)下Redis开机自启设置

    1.设置redis.conf中daemonize为yes,确保守护进程开启. 2.编写开机自启动脚本 vi /etc/init.d/redis 脚本内容如下: # chkconfig: 2345 10 ...

  9. linux下socket编程(基础参考)

    什么是Socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序.要学Internet上的TCP/IP网络编程, ...

最新文章

  1. 删除Perspective
  2. backdrop-filter 和filter 写出高斯模糊效果 以及两者区别
  3. 从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
  4. 【若依(ruoyi)】工作流操作SQL
  5. Redis操作ZSet类型
  6. 高等数学上-赵立军-北京大学出版社-题解-练习5.6
  7. NS2仿真分析无线网络的攻击防御(1)
  8. go func()和 go_Go的泛型真的要来了—如何使用以及它们是怎么工作的
  9. redis集群 原理
  10. 精度LiDAR-Monocular Visual Odometry
  11. linux微信登陆失败,微信登不上去怎么办 微信登陆失败解决方法
  12. 职工档案管理系统报告与c语言,[职工档案管理系统C语言.doc
  13. 刽子手c语言,竞赛题目选讲——刽子手的游戏(C语言)
  14. littleVGL开发:littleVGL的介绍
  15. win10装debian 双系统_如何安装win10和linux [ubuntu14]双系统
  16. matlab图像取样和量化,数字图像基础之图像取样和量化
  17. 43.248.189.18 Steam游戏服务器搭建教程
  18. 计算机财务管理专业有哪些课程设计,财务管理专业课程设计模版.pdf
  19. 公司“内部管理混乱,工作很难开展”!
  20. 计算器(难度系数:3颗星)

热门文章

  1. Larave 利用smtp.office365.com发送邮件遇到问题
  2. Go语言程序编译注入版本信息,提升Debug速度!
  3. Shell双重for循环
  4. 小米电视3s测试软件,【当贝市场】小米电视3s测屏软件有哪些?
  5. kubernetes搭建dashboard-v1.10.1
  6. 掌财社寒山:垄断阴影未除,失去左晖的贝壳还能走多远?
  7. RESA CODE Generator 瑞萨代码生成工具使用简介
  8. 【UE4】刷草后构建光照巨慢,还提示光照贴图分辨率过大的解决办法
  9. 根据输入的qq号获取昵称、邮箱和头像等基础信息
  10. Android 跳转到另一个应用