PC用串口连接开发板进行通讯的底层原理

news2024/11/15 11:33:40

标题

  • PC用串口连接开发板进行通讯的底层原理
    • pc端的命令窗口为什么可以看到字符?
    • 为什么按下回车后,就有目录信息的显示?

PC用串口连接开发板进行通讯的底层原理

在这里插入图片描述
小编我开始往驱动开发方向转了,最近在学b站韦东山老师的驱动开发入门课程,学到了串口通讯的底层原理,非常有意思,和大家分享下。

当我们在pc机上的端口命令界面输入“ls 回车”后,为什么我在pc的端的界面可以看到字符?为什么按下回车后,就有目录信息的显示?硬件和软件是如何帮我们实现的呢?

来,听我给你们分析。

pc端的命令窗口为什么可以看到字符?

当我们输入一个“l”字符时,命令窗口会立刻显示“l”。
在这里插入图片描述
硬件和软件是如何帮我们实现的呢?如图
在这里插入图片描述
以下是上图的详细描述

  • 键盘键入一个“l”字符后,就被键盘驱动传到了pc端的上层APP串口登录软件,串口登录软件将该字符再传给pc的串口驱动,串口驱动通过串口将字符传递给了开发板。
  • 开发板通过串口收到了字符“l”,然后传递给串口驱动,串口驱动再发给行规程(line discipline)。行规程对其进行初步处理后(会有一个缓冲区存储发来的字符),发现是一个普通的字符就回显给pc。于是字符“l”就从行规程传递到了串口驱动,再到串口,再到PC的串口。
  • PC的串口收到“l”后,就传给串口驱动,串口驱动将其传回到串口登录软件。串口登录软件将接收到的字符“l”添加到命令窗口对应的文件中,然后再将文件的数据传给显示驱动,显示驱动再将数据传给显示屏,完结。

如果传输字符“s”也是一样的。此时如果我键入一个控制符,如“BS”退格符会怎么样呢?

  • 过程和键入普通字符是一样的,但需要注意的是。当“BS”传入到开发板的行规程时,会删除掉行规程缓冲区中的上一个字符。并且“BS”不会保存在行规程中,然后行规程会将“BS”通过串口驱动、串口传回到PC中。
  • 当“BS”传到串口登录软件时,串口登录软件会将命令串口对应的文件中的对应位置的字符删除掉,然后将文件的数据传给显示驱动。

为什么按下回车后,就有目录信息的显示?

按下回车后,即键入“CR”符。该控制符和前面论述的“BS”符的流程大致一样,但也有区别。

  • 当“CR”符传到开发板系统的行规程时,先是被串口驱动传回到PC中,同时被判断为要执行缓冲区中的命令,缓冲区中的字符串被上传到了开发板的上层应用软件shell中,shell对命令进行解释并且执行后,会得到相应的目录信息结果。
  • 此时shell会将这些目录信息字符串传给行规程,行规程就将受到的字符串逐个字符地传给PC。最终,我们在pc中就可以看到目录信息了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1970862.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NET 定时器 Timer和线程Thread

是否可以更新UI线程的内容 》》》资源占用:‌ 》定时器可以的,不存在跨线程问题 》Thread创建的线程,不能更新UI线程的内容, 存在跨线程 Control.CheckForIllegalCrossThreadCalls false;//默认是True 》》执行方式&#xff…

超有用的数据恢复方法!你一定不要错过!

无论我们当下所使用的是何种设备,例如电脑、U 盘、硬盘、相机、行车记录仪,都难以避免出现误删文件的情况。那么,这些被误删的数据究竟应当通过何种方式找回? 今日,为大家分享若干极为实用的数据恢复方法,望…

THS6011容器版docker使用说明(by why+lqw)

THS6011容器版有分x86和arrch64两种安装包,主要是针对ths节点,本身并没有控制台的安装包,请根据自己的系统的cpu架构进行选择,本次使用的是x86的安装包作为演示。 下图是arrch64的镜像(PDMP-4980)&#xf…

大模型书籍分享(附PDF)大模型时代:ChatGPT开启通用人工智能浪潮

近期工作中有一些涉及到大模型等的应用,刚好在微信读书上看到了这本 《大模型时代:ChatGPT开启通用人工智能浪潮》, 本月看完了这本书与大家分享下。 ChatGPT火爆全球,但大语言模型(Large Language Model)…

DeepViT 论文与代码解析

paper:DeepViT: Towards Deeper Vision Transformer official implementation:https://github.com/zhoudaquan/dvit_repo 出发点 尽管浅层ViTs在视觉任务中表现优异,但随着网络深度增加,性能提升变得困难。研究发现&#xff0c…

共享打印机0x0000011b错误解决方法

日打印机故障一直是一个热门话题,特别是共享打印机0x0000011b错误特别头疼,有很多网友经常遇到共享打印机0x0000011b错误。0x0000011b有更新补丁导致的、有访问共享打印机服务异常、有访问共享打印机驱动异常等问题导致的,针对共享打印机0x00…

问题易如反掌?5个常用的AI人工智能助手推荐

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 如今的人工智能技术正以惊人的速度改变着我们的生活方式和工作方式。作为这一变革的关键驱动力,人工智能不仅在科技…

一个方法解决看世界时区 做外贸和跨境电商的必备小工具

一个方法解决看世界时区 做外贸和跨境电商的必备小工具。做过外贸或跨境电商的伙伴们都知道,看世界各地时区是一个比较繁琐的事情。 很多公司都有自己专注的几个地区业务,经常要看业务地区的时间,这样方便和客户沟通。做生意的人都知道&…

uniapp - APP分享到微信,通过h5页面跳转至对应的app页面

目录 项目场景: 效果展示: 解决方案: 第一步: 第二步 : 1、微信跳转APP:wx-open-launch-app 第三步: 总结: 项目场景: uniapp框架开发的app(Android和ios)&…

Zilliz 2025届校园招聘正式启动,寻找向量数据库内核开发工程师

为了解决非结构化数据处理问题,我们构建了向量数据库-Milvus! Milvus 数据库不仅是顶级开源基金会 LF AI&Data 的毕业项目,还曾登上数据库顶会SIGMOD、VLDB,在全球首届向量检索比赛中夺冠。目前,Milvus 项目已获得超过 2.8w s…

算法工程师必知必会的数学基础之线性代数

1. 线性代数 线性代数是机器学习和深度学习中一个非常重要的数学基础。下面我将详细介绍线性代数中的一些基本概念,并使用 Python 的 NumPy 库来演示这些概念的应用。 1.1 向量(Vectors)与 矩阵(Matrices) 向量&…

Qt 登录界面

本文代码效果如下: 本文代码: https://download.csdn.net/download/Sakuya__/89607657https://download.csdn.net/download/Sakuya__/89607657 代码之路 LoginTitleBar.h 自定义的透明标题栏 #ifndef LOGINTITLEBAR_H #define LOGINTITLEBAR_H#in…

【书生大模型实战营】基础岛-8G 显存玩转书生大模型 Demo

8G 显存玩转书生大模型 Demo 【书生大模型实战营】基础岛-8G 显存玩转书生大模型 DemoInternLM2-Chat-1.8B 模型的部署代码运行StreamLit部署 InternLM-XComposer2-VL-1.8B 模型的部署InternVL2-2B 模型的部署 【书生大模型实战营】基础岛-8G 显存玩转书生大模型 Demo InternL…

“八股文“在现代编程面试中的角色重塑:助力、阻力还是桥梁?

🌈所属专栏:【其它】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您的点…

【全网最全】文心智能体平台介绍和应用

什么是智能体平台? 文心智能体平台(Wenxin Intelligent Agent Platform)是由百度开发的一个全面集成多种人工智能技术的开放平台,旨在为企业和开发者提供强大的智能化服务和解决方案。支持广大开发者根据自身行业领域、应用场景&…

LoRa无线通讯,让光伏机器人实现无“线”管理

光伏清洁机器人,作为光伏电站运维的新兴关键设备,已跃升为继组件、支架、光伏逆变器之后的第四大核心组件,正逐步成为光伏电站的标准配置。鉴于光伏电站普遍坐落于偏远无人区或地形复杂之地,光伏清洁机器人必须具备远程操控能力、…

Charles怎么修改参数

Charles怎么修改参数 1、再【Structure】下,找到需要抓取的包,鼠标右键,点中断点。 2、在【Proxy】-点击【Breakpoint Settings…】 3、双击设置断点的接口 4、勾选后,点击【OK】。 5、再次刷新,重新发请求&#…

海思35XX系列(三)sensor(传感器)

刚开始接触这个概念的时候感觉比较模糊,简单记录一下吧 Sensor(传感器)是一种可以感知外部环境并将感知到的信息转化为可用的电信号或其他形式的工具。传感器广泛应用于电子设备、工业自动化、汽车、医疗器械等领域,用于测量、监…

【JVM】常见面试题

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. JVM 中的内存区域划分2. JVM 的类加载机制2.1 加载(Loading)✨双亲委派模型2.2 验证(Verification)2.3 准…

AI1-PaddleOCR2.8在VS2019编译运行基于C++引擎推理CPU版本

1、下载PaddleOCR-release-2.8开源项目 https://github.com/PaddlePaddle/PaddleOCR https://github.com/PaddlePaddle/PaddleOCR/releases https://gitee.com/paddlepaddle/PaddleOCR?_fromgitee_search 2、下载安装Windows预测库 https://paddleinference.paddlepaddle.o…