Elfboard-ELF开发板 Linux学习笔记(五)—— 应用编程篇 串口通信(上)

本文介绍了Elfboard的Linux开发环境中的终端概念,包括本地终端、远程终端和串口终端,重点讲解了structtermios结构体及其参数,涉及输入、输出、控制和本地模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Elfboard-ELF开发板 Linux学习笔记(五)—— 应用编程篇 串口通信(上)

一、终端介绍

1.1 终端的概念

终端(Terminal)是用户与计算机进行数据通信的设备,只要能提供给计算机输入和输出功能,它就是终端。

1.2 终端的分类

  • 本地终端:PC 机连接了显示器、键盘以及鼠标等设备,这样的一个显示器/键盘组合就是一个本地终端
  • 远程终端:对于嵌入式 Linux 开发来说,这是最常见的终端—串口终端。
  • 用于串口连接得远程终端:譬如我们可以通过 ssh、Telnet 这些协议登录到一个远程主机。也叫伪终端

1.3 终端对应的设备结点

在Linux系统中,一切皆文件。那么终端当然也不例外,每个终端在/dev目录下都有一个对应的设备结点。

  • 本地终端对应的设备结点:/dev/tty* 例如:/dev/tty1-/dev/tty63
  • 伪终端对应的设备节点:/dev/pts/* 例如:/dev/pts/0-/dev/pts/1023
    当用ssh远程登录到Linux主机时,系统会为远程登录用户分配一个伪终端,这个伪终端的设备节点为/dev/pts/0。
  • 串口终端对应的设备结点:/dev/ttymxc* 例如:/dev/ttymxc0-/dev/ttymxc15
    在这里插入图片描述

注意: 这里的ttymxc0表示UART1,ttymxc1表示UART2,以此类推。
由此可以知道elf出厂系统注册了 4 个串口外设。

二、串口通信介绍

2.1 struct termios 结构体

    struct termios {
        tcflag_t c_iflag; /* 输入模式 */
        tcflag_t c_oflag; /* 输出模式 */
        tcflag_t c_cflag; /* 控制模式 */
        tcflag_t c_lflag; /* 本地模式 */
        cc_t c_line;      /* 线路规程 */
        cc_t c_cc[NCCS];  /* 特殊控制字符 */
        speed_t c_ispeed; /* 输入速率 */
        speed_t c_ospeed; /* 输出速率 */
    };

2.2 各个模式得参数介绍

  • c_iflag:输入模式:输入模式控制输入数据(终端驱动程序从串口或键盘接收到的字符数据)在被传递给应用程序之前的处理方式。
    在这里插入图片描述

  • c_oflag:输出模式:输出模式控制输出字符的处理方式,即由应用程序发送出去的字符数据在传递到串口或屏幕之前是如何处理的。
    在这里插入图片描述

  • c_cflag:控制模式:控制模式控制终端设备的硬件特性,譬如对于串口来说,该字段比较重要,可设置串口波特率、数据位、校验位、停止位等硬件特性。
    在这里插入图片描述

  • c_lflag:本地模式:本地模式用于控制终端的本地数据处理和工作模式。
    在这里插入图片描述

  • c_line:线路规程:线路规程控制终端驱动程序如何处理接收到的字符数据。

  • c_cc:特殊控制字符:特殊控制字符是一些字符组合,如 Ctrl+C、Ctrl+Z 等,当用户键入这样的组合键,终端会采取特殊处理方式
    在这里插入图片描述

  • c_ispeed:输入速率

  • c_ospeed:输出速率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君逸~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值