linux串口通信(一):串口的概念


一、概念

1.特点

串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。

一条信息的各位数据被逐位 按顺序传送的通讯方式称为串行通讯。
串行通讯的特点是:

  • 数据位的传送,按位顺序进行,最少只需一根传输线即可完成;
  • 成本低但传送速度慢。串行通讯的距离可以从几米到几千米;
  • 根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。

2.接口标准

在这里插入图片描述

3.串口通信协议

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4.linux串口调试工具minicom

在这里插入图片描述

5.串口通信流程

在这里插入图片描述

二、串口内部

1.结构体

最基本的设置串口包括波特率设置效验位停止位设置。
串口的设置主要是设置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 */
};

2.串口控制函数

tcgetattr      	取属性(termios结构)
tcsetattr      	设置属性(termios结构)
tcdrain        	等待所有输出都被传输
tcflow         	挂起传输或接收
tcflush        	刷清未决输入和/或输出
tcsendbreak    	送BREAK字符
tcgetpgrp      	得到前台进程组ID
tcsetpgrp      	设置前台进程组ID

cfgetispeed   	得到输入速度
cfgetospeed    	得到输出速度
cfsetispeed    	设置输入速度
cfsetospeed    	设置输出速度
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值