我在高职教STM32——串口通信(1)

        大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正是如此,才有了借助头条平台寻求认同感和成就感的想法。在这里,我准备陆续把自己花了很多心思设计的教学课件分享出来,如果您正是一名单片机爱好者或是一名同行,欢迎点赞+关注,各位的支持是本人持续输出的动力,多谢多谢!

        通信,按照传统的理解就是信息的传输与交换。对于像STM32这样的单片机来说,通信则与传感器、存储芯片、外围控制芯片等技术紧密结合,成为整个单片机系统的“神经中枢”。没有通信,单片机所实现的功能仅仅局限于单片机本身,就无法通过其它设备获得有用信息,也无法将自己产生的信息告诉其它设备。如果单片机通信没处理好的话,它和外围器件的合作程度就受到限制,最终整个系统也无法完成强大的功能,由此可见单片机通信技术的重要性。UART(Universal Asynchronous Receiver/Transmitter,即通用异步收发器)串行通信是单片机最常用的一种通信技术,通常用于单片机和电脑之间、单片机和单片机之间、单片机与外围器件的通信。

【学习目标】

  1. 知道通信基本概念的含义;
  2. 理解通信机制中物理层和协议层分离的理念;
  3. 学会配置STM32的串口功能;
  4. 了解printf()函数“打印”至串口的实现过程;
  5. 掌握使用串口调试软件对单片机的调试方法。

        STM32串口通信涉及的知识较多,为了不让篇幅太长,本章打算分五个部分来讲解,本文是第一部分。

一、通信的一些必备知识

1.1 并行通信与串行通信

        这两种通信方式的示意如图1所示。并行通信一般是指使用8、16、32及64根或更多的数据线进行传输的通讯方式。并行通信就像多个车道的公路,可以同时传输多个数据位的数据。串行通信是指设备之间通过少量数据信号线(一般是8根以下)、地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。串行通信就像单个车道的公路,同一时刻只能传输一个数据位。

图1 并行通信与串行通信示意

        由于并行传输对同步要求较高,且随着通讯速率的提高,信号干扰的问题会显著影响通讯性能,现在随着技术的发展,越来越多的应用场合采用高速率的串行差分传输。

1.2 全双工、半双工、单工通信

        全双工通信是指在同一时刻,两个设备之间可以同时收发数据。就好比一个双向车道,两个方向上的车流互不相干。打电话就是一种全双工通信。

        半双工通信是指两个设备可以收发数据,但不能在同一时刻进行。就像乡间小道那样,同一时刻只能让一辆小车通过,另一方向的来车只能等待道路空出来时才能经过。对讲机就是一种半双工通信。

        单工通信是指在任何时刻都只能进行一个方向的通信,即一个固定为发送设备,另一个固定为接收设备。就像单行道,另一方向的车辆完全禁止通行。这三种通信方式的特点可以用图2来表示。

图2 三种通信方式示意

1.3 同步通信与异步通信

        如图3所示,在同步通信中,收发设备双方会使用一根信号线表示时钟信号,在时钟信号的驱动下双方进行协调,同步数据。通讯中通常双方会统一规定在时钟信号的上升沿或下降沿对数据线进行采样。

图3 同步通信示意

        如图4所示,在异步通讯中,不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些同步用的信号位,或者把主体数据进行打包,以数据帧的格式传输数据,某些通讯中还需要双方约定数据的传输速率,以便更好地同步。

图4 异步通信示意

        在同步通信中,数据信号所传输的内容绝大部分就是有效数据,而异步通信中会包含有帧的各种标识符,所以同步通信的效率更高,但是同步通信双方的时钟允许误差较小,而异步通信双方的时钟允许误差较大。

1.4 通信速率

        衡量通信性能的一个非常重要的参数就是通信速率,通常以比特率(bitrate)来表示,即每秒钟传输的二进制位数,单位为比特每秒(bit/s)

        容易与比特率混淆的概念是波特率(baudrate),它表示每秒钟传输了多少个码元。而码元是通讯信号调制的概念,通讯中常用时间间隔相同的符号来表示一个二进制数字,这样的信号称为码元。

        很多常见的通信中,一个码元就是一个二进制位,这种情况下比特率等于波特率。人们常常直接以波特率来表示比特率,大多数情况下是没什么问题的,这里只是希望了解一下它们的区别。

(第一部分完,共五部分)

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

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

相关文章

水利行业的智慧转型之路:分析智慧水利的核心要素与优势,展望其在提升水资源利用效率、保障水安全方面的广阔前景

目录 引言 一、智慧水利的核心要素 1. 物联网技术 2. 大数据与云计算 3. 人工智能与机器学习 4. 移动互联网与GIS技术 5. 标准化与信息安全 二、智慧水利的优势 1. 提高水资源利用效率 2. 增强水灾害防御能力 3. 提升水环境治理水平 4. 促进水利服务智能化 三、展望…

5.6 软件工程-运维

运维 - 系统转换 运维 - 系统维护 运维 - 系统评价 真题

深入理解JVM内存管理:从区域划分到优化策略

JVM内存区域划分有哪些? 堆内存:分为新生代和老年代 新生代:临时对象,所有对象最开始都是年轻代,使用完会被回收或转入老年代 老年代:长期存在的对象 进入老年代的情况: 1.新生代垃圾回收超…

python ATM实现

代码要求: 详细代码: money 50000000 name input("输入您的姓名 :")#查询功能 def search(show_header):if show_header:print("--------查询余额--------")print(f"{name},您好,您的余额…

模板方法原理与C++实现

定义 定义一个操作中的算法骨架(稳定的),而将一些步骤的实现延迟到子类中(变化的)。模板方法使得子类可以复用一个算法的结构,而只改变(重写)这个算法的特定步骤。 C实现 class L…

为ppt中的文字配色

文字的颜色来源于ppt不可删去的图像的颜色 从各类搜索网站中搜索ppt如何配色,有如下几点: 1.可以使用对比色,表示强调。 2.可以使用近似色,使得和谐统一。 3.最好一张ppt中,使用的颜色不超过三种主要颜色。 但我想强调…

【细如狗】记录一次使用MySQL的Binlog进行数据回滚的完整流程

文章目录 1 事情起因2 解决思路3 利用binlog进行数据回滚3.1 确认是否启用Binlog日志3.2 确认是否有binlog文件3.3 找到误操作的时间范围3.4 登录MySQL服务器查找binlog文件3.4.1 查询binlog文件路径3.4.2 找到binlog文件3.4.3 确认误操作被存储在哪一份binlog文件中 3.5 查看二…

嵌入式人工智能(9-基于树莓派4B的DS1302实时时钟RTC)

1、实时时钟(Real Time Clock) RTC,全称为实时时钟(Real Time Clock),是一种能够提供实时时间信息的电子设备。RTC通常包括一个计时器和一个能够记录日期和时间的电池。它可以独立于主控芯片工作&#xff…

N Puzzle (数字推盘游戏)

N Puzzle [数字推盘游戏] 1. 15 Puzzle2. N PuzzleReferences puzzle /ˈpʌzl/:n. 谜,智力游戏,疑问,不解之谜,令人费解的事 vt. 迷惑,使困惑1. 15 Puzzle https://en.wikipedia.org/wiki/15_puzzle The…

【Python脚本】读取execl表格域名到期时间进行筛选通过webhook进行通知

【Python脚本】读取execl表格域名到期时间进行筛选通过webhook进行通知 execl表格示例: import pandas as pd import requestsdf = pd.read_excel(D:\xx\xx\SSL.xlsx, sheet_name=None)webhook_url = "https://open.feishu.cn/open-apis/bot/v2/XXX?"for sheet_na…

高校如何拥抱国产化OS?中南民族大学信息化应用实践

CentOS 已然停服,数量众多的使用 CentOS 的企业以及高校,都面临着系统替换的迫切需求。国产化操作系统候选者众多,如何在兼顾原有系统兼容性的基础上,在国产化操作系统进行整体环境的平稳迁移,成为在选择 CentOS 替换方…

滑动窗口题目

题目描述&#xff1a; 计算两个字符串str1和str2在给定的含有n个元素的字符串数组strs中出现的最短距离。 详细解释&#xff1a; 定义整数变量n&#xff0c;用于存储字符串数组strs的长度。定义一个vector<string>类型的变量strs&#xff0c;用于存储输入的字符串。定义…

昇思25天学习打卡营第18天|RNN实现情感分类

相关知识 情感分类 指输入一段话或句子&#xff0c;返回该段话的正向或复兴的情感分类。 text embedding 指将文本转化成向量的方法。这里的文本指词、句子、文档等文本序列。 词向量化后会将词转为二进制(独热编码)或高维实数向量&#xff0c;句子和文档向量化则将句子或文…

SpringMVC注解全解析:构建高效Web应用的终极指南 (下)

一. 引言 在上篇文章中&#xff0c;我们介绍了几个重要的SpringMVC注解&#xff1a; SpringBootApplication&#xff1a;Spring Boot项目的启动类注解。RequestMapping&#xff1a;用于映射URL到控制器类或方法&#xff0c;支持多种请求方式。RequestParam&#xff1a;用于绑…

科研绘图系列:R语言分割小提琴图(Split-violin)

介绍 分割小提琴图(Split-violin plot)是一种数据可视化工具,它结合了小提琴图(violin plot)和箱线图(box plot)的特点。小提琴图是一种展示数据分布的图形,它通过在箱线图的两侧添加曲线来表示数据的密度分布,曲线的宽度表示数据点的密度。而分割小提琴图则是将小提…

41.ILA IP核集成逻辑分析仪在线调试工具

&#xff08;1&#xff09;逻辑分析仪使用场景&#xff1a; 仿真不全面数据交互存在异步情况板卡互联可靠性问题 (2)ILA使用方法&#xff1a; 使用IP核创建ILA调试环境使用Debug标记创建IP核使用路径标记核位置调试菜单创建ILA测试环境 (3)IP核调用过程&#xff1a; 例化模…

基于ssh的链接异常解决方法

VSCode、PyCharm链接异常 一.可能的原因 1.如果实例的系统盘重置或更换镜像&#xff0c;那么SSH的指纹会发生变化&#xff0c;于是SSH时会报错REMOTE HOST IDENTIFICATION HAS CHANGED 2.如果本地ssh config文件权限不对&#xff0c;会由于ssh时无法写入配置报错&#xff08;…

【BUG】已解决:IndexError: list index out of range

已解决&#xff1a;IndexError: list index out of range 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城市开发者社区主…

长难句打卡7.15

The trend was naturally most obvious in those areas of science based especially on a mathematical or laboratory training, and can be illustrated in terms of the development of geology in the United Kingdom 这一趋势自然在以数学或实验室训练为基础的科学领域里…

探寻大模型回答9.9和9.11犯错的根本原因

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…