齐护K210系列教程(四)_串口输出

串口输出打印数据

文章目录

    • 串口输出打印数据
      • 1,什么是串口通信
      • 2,串口通常的应用
      • 3,AIstart的串口编程
        • 3-1 打印数据输出
        • 3-2 打印数据输出与输入
      • 4,课程资源

1,什么是串口通信

在设计程序的过程中,经常要查看程序的运行状态或交互信息,上面的课程我们说到可以用指示灯的试来告诉用户程序状态,但灯只是表过一部分的信息,并不能表达全部的内容或更细的内容,还有就是灯的亮灭不能让其它的计算机或控制器明白,这时我们的计算机之间就要有一种可以相互了解交互的机制,就像我们人类的语言一样,你讲的我能听懂,我讲的你能听懂一样。

这节课我们就来学习计算机之间的一种交互方式叫:串口通信

随着计算机系统的应用和微机网络的发展,通信功能越来越显得重要.这里所说的通信是指计算机与外界的信息交换.因此,通信既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换.由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输.对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍.在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各 CPU 之间的通信一般都是串行方式.所以串行接口是微机应用系统常用的接口。许多外设和计算机按串行方式进行通信,这里所说的串行方式,是指外设与接口电路之间的信息传送方式,实际上,CPU 与接口之间仍按并行方式工作.

串口通信是一种串行异步通信,通信双方以字符帧作为数据传输单位,字符帧按位依次传输,每个位占固定的时间长度。两个字符帧之间的传输时间间隔可以是任意的,即传输完一个字符帧之后,可以间隔任意时间再传输下一个字符帧。

  1. 字符帧

字符帧由四个部分构成,分别是起始位、数据位、校验位以及停止位。起始位占1位,为逻辑0。数据位占5 ~ 8位,可配置。校验位占1位,可配置为奇校验、偶校验、无校验;配置为无校验时字符帧不包含校验位;配置为奇校验时,数据位中逻辑1的个数为奇数时,校验位的值为逻辑0,否则为逻辑1;配置为偶校验时,数据位中逻辑1的个数为偶数时,校验位的值为逻辑0,否则为逻辑1。停止位占1/1.5/2位,可配置,停止位的值为逻辑1。常用的字符帧格式如下图1.1所示,1位起始位、8位数据位、1位校验位、1位停止位。

  1. 波特率

字符帧是按位依次传输,波特率即传输字符帧时的位速率,单位为bit/s。通信双方要使用相同的波特率,常用的波特率如9600、115200。

  1. UART

UART是通用异步收发器(Universal Asynchronous Receiver/Transmitter)的简称,它是设备实现串口通信的核心部件。UART由发送器、接收器、波特率发生器组成,发送器由发送保持寄存器、发送移位寄存器、控制逻辑构成,接收器由接收保持寄存器、接收移位寄存器、控制逻辑构成。发送数据时,应用程序将字节数据写入发送保持寄存器,发送移位寄存器每次向右移动一位,将数据一位一位发送出去。接收数据时,每接收一位数据后,接收移位寄存器向左移动一位,直到接收一个字节数据为止,应用程序通过读取接收保持寄存器来获取接收的字节数据。波特率发生器用于产生接收和发送数据时所使用的波特率。

2,串口通常的应用

串口在我们的学习应用中,可以有多种方式,比如主板直接GPIO间的输出输入,或通过蓝牙,wifi模块,RS232模块,RS485模块再进行转发,都是可以的。

UART进行串口通信使用TTL电平。5V工作电压的MCU,使用0 ~ 0.5V表示逻辑0,2.5V ~ 5V表示逻辑1;3.3V工作电压的MCU,使用0 ~ 0.5V表示逻辑0,2.5V ~ 3.3V表示逻辑1。

注:通常5V的MUC不能与3.3V的MCU直接连接。

两个MCU进行串口通信时的硬件连接示意:

如上我们可以知道,通常串口通信只要两根线交叉连接就可以了,加上一个GND共地,但有时为了电平统一,我们在学习中通常带上供电端,那么就是5V-GND-TX-RX,这也是为什么你看到齐护的硬件中总是喜欢用4根线的原因,不但有很多传感器这样用,比如IIC的通信,超声波传感器等,当然也有很多是单线的。

3,AIstart的串口编程

在主控上通常我们把数据通过串口打印回我们的软件,方便查当数据,或通过其它的IO传送出去给其它的主控读取交互。

这节课我们先来学习如何把数据传回到我们计算机中,下节课再学习别的方式。

3-1 打印数据输出
AIstart 掌机

如下程序,当按键上下对应按下时,灯会亮或灭,对应的串口会把信息传回到电脑(软件右下角),注意波特率要调为115200,主控默认的串口交互用的是这个。

程序中我们看到有一个0.2秒的延时,这时防按键盘按下时打印速度多次重复,因为计算机的扫描速度是超快的,远超过我们的人类的感知,所有在应用开关时要注意这个问题,你也可以测试一下去除这个延时会发生什么。

3-2 打印数据输出与输入
AIstart Q1

上面我们介绍上将数据传出去,下面的方法是用软件的输入0-1来控制我们板上的灯。当串口输入1时,灯亮,当输入0时灯灭,实现在人机交互。

注:串口中输入的是字符串类型的,所以我们用了一个字符串块进行类型转换。对比的数据类型必须是同一类型。

输入0或者1点击发送,可以控制LED的开或者关。

4,课程资源

课程程序下载:【4串口打印数据】

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【中邦兴业】如何进行气流流型测试?一篇文章告诉你

气流流型,作为反应无菌操作的关键测试,其测试方法和结果是否合理直接关系到无菌保障水平是否达到要求。一个科学的气流流型设计,能够正确反应关键区域和关键操作下的气流流动是否符合要求,能否有效减少产品微生物的污染风险。如今…

Redis系列:内存淘汰策略

1 前言 通过前面的一些文章我们知道,Redis的各项能力是基于内存实现的,相对其他的持久化存储(如MySQL、File等,数据持久化在磁盘上),性能会高很多,这也是高速缓存的一个优势。 但是问题来了&am…

【预测】小米汽车电子电气架构的猜想

文章目录 前言 整车EEA 硬件平台 软件平台 总结 参考资料 前言 见《【Review】小米汽车发布会》 整车EEA 小米汽车整车电子电气架构方面的信息,小米官方并没有对外介绍,但是从近日流出的整车BOM和供应商列表中看到,车上各种控制器一个都…

地下停车场FM覆盖系统技术方案

一、整体思路 根据我公司现场勘查与交流结果,建议采用数字选频模拟拉远的方式进行组网,建议采用我公司研发的一体化直放站,该直放站采用直放站与天线一体化设计,大大降低安装施工工作量,减少布线量,减少维护…

全新Storm Core API管理系统源码 免授权版

全新Storm Core API管理系统源码 免授权版 本系统为API系统,实现了api集成等基础功能,以后可能会更新key调用api,或者实现付费功能,敬请期待,前端模板均无加密,用户可自行二开,具体请看图 测试环境:PHP7.2+MySQL5.6 访问:http://你的域名/install 进行安装 伪静态…

已注册商标的交易要避开哪些坑?

有些主体急用商标,比如上平台和投放,或者是申请注册驳回或者是没有申请注册好名称,普推知产老杨建议在交易已注册商标要注意避开这些坑。 一是看有没有大持有量,如果转让人持有商标的量特别大,特别是一对多&#xff0c…

e2e测试框架之Cypress

谈起web自动化测试,大家首先想到的是Selenium!随着近几年前端技术的发展,出现了不少前端测试框架,这些测试框架大多并不依赖于Selenium,这一点跟后端测试框架有很大不同,如Robot Framework做Web自动化测试本…

ArcGIS教程:降雨量插值

一、目标 制作一副年平均降雨量的地图。 二、数据 某地的175个气象站数据的shp文件station.shp,以及这个地方轮廓的栅格数据idoutlgd。 数据下载链接:数据下载链接 三、制作方法 1.首先加载数据。 2.在菜单栏/customize/toolbars/中找到geostatisti…

深度剖析Gateway在微服务治理中的关键角色

目录 一、多层网关 二、Gateway 路由规则 2.1 路由 2.2 谓词 2.3 过滤器 三、路由声明规则 3.1 谓词 寻址谓词 请求参数谓词 时间谓词 自定义谓词 一、多层网关 首先我们先了解下一个请求是如何到达服务端并得到相应的。过程如图所示: 首先网址解析的第一步是 DN…

esp32S3 http通信

esp32 进行http通信非常简单,用到的库有urequests、network。urequests用于发送http请求并获取返回结果;network用于连接网络 network连接网络代码如下 import network def do_connect():"""链接WIFI"""wlan = network.WLAN(network.STA_IF)w…

http是什么?http的基础知识教程详解(2024-04-24)

1、http的概念 HTTP(超文本传输协议,HyperText Transfer Protocol)是一种用于分布式、协作式、超媒体信息系统的应用层协议。 HTTP 是万维网(WWW)的数据通信的基础,设计目的是确保客户端与服务器之间的通…

揭开六西格玛培训真实面貌,为何它仍是企业优选

近年来,网络上时常有声音称六西格玛培训已经过时,不再适应当今快速变化的商业环境。然而,这种观点并不全面,也未能深入理解六西格玛管理的核心价值和现代应用。事实上,六西格玛作为一种以数据为驱动、旨在减少缺陷和提…

CQ 社区版 2.11.1|新增主体授权、操作向导等

四月,正是踏青时节~ 不知道大家有没有约上三五好友一起去踏青露营 但 CQ 与大家的一月一见,不会失约! 让我们一起来看看本月的社区版有哪些更新吧~ 「手动授权」模块划分为主体授权和客体授权 |新增用户维…

【动态规划】C++ 子序列问题(递增子序列、数对链、定差子序列、斐波那契子序列...)

文章目录 1. 前言2. 例题最长递增子序列 3. 算法题3.1_摆动序列3.2_最长递增子序列的个数3.3_最长数对链[3.4_ 最长定差子序列](https://leetcode.cn/problems/longest-arithmetic-subsequence-of-given-difference/description/)3.5_最长的斐波那契子序列的长度3.6_最长等差数…

python-flask结合bootstrap实现网页小工具实例-半小时速通版

参考: Python之flask结合Bootstrap框架快速搭建Web应用_支持bootstrap的python软件-CSDN博客 https://blog.csdn.net/lovedingd/article/details/106696832 Bootstrap 警告框 | 菜鸟教程 https://www.runoob.com/bootstrap/bootstrap-alert-plugin.html flask框架…

用C#写一个读取pdf文档内容的库

安装这两个库,第二个库一定要安装否则有些pdf文件读取会出现异常 读取 using iText.Kernel.Pdf; using iText.Kernel.Pdf.Canvas.Parser; using iText.Kernel.Pdf.Canvas.Parser.Listener;namespace TestReadPdf {public static class PdfHelper{public static IE…

算法刷题day46

目录 引言一、树的重心二、毕业旅行问题三、高精度乘法 引言 今天复习了一下高精度的所有模板,包括加法、减法、乘法、除法,因为自己当时在蓝桥杯的时候没有看出来那个题使用高精度,因为对于一个数的大小和一个数的长度,自己有时…

关于卡尔曼滤波进行状态预测的方法

卡尔曼滤波是一种有效的线性动态系统状态估计方法。它通过递归地处理测量数据,结合系统动力学模型和测量模型,来预测和估计系统的状态。卡尔曼滤波特别适用于系统状态在时间上演化,而且测量数据存在噪声的情况。以下是卡尔曼滤波对于状态预测…

编译器的学习

常用的编译器: GCCVisual CClang(LLVM): Clang 可以被看作是建立在 LLVM 之上的一个项目, 实际上LLVM是clang的后端,clang作为前端前端生成LLVM IR,https://zhuanlan.zhihu.com/p/656699711MSVC &#xff…

[C++][算法基础]能被整除的数(容斥原理)

给定一个整数 𝑛 和 𝑚 个不同的质数 𝑝1,𝑝2,…,𝑝𝑚。 请你求出 1∼𝑛 中能被 𝑝1,𝑝2,…,𝑝𝑚 中的至少一个数整除的整数有多少个。 输入格式…