STM32基础学习笔记-USART外设面试基础题3

news2024/9/25 20:42:05

第三章、USART

常见问题
通讯定义 ?通讯分类 (有无时钟源、通讯方式、传输方向)?
波特率的本质:隐形的时钟
电平转换 ?TTL、COMS、RS232、RS485、USB电平标准 ?
STM32串口与RS-232通讯 ?
STM32串口与电脑USB通讯 ?
USART 含义 ?为什么使用异步方式 ?USART 通讯框图 ?
## 1、USART USART是一种通用的串行通信接口,支持同步和异步数据传输。它用于微控制器和其他设备之间的串行通信。

为什么使用异步方式:

简单性:异步通信不需要时钟信号,简化了硬件设计。

灵活性:可以在不同的波特率下进行通信,适应多种设备。

成本:减少了对额外时钟线的需求,降低了成本和复杂性。

USART的主要组成部分:

数据寄存器:用于存储要发送或接收的数据。

控制寄存器:配置USART的工作模式、波特率等。

状态寄存器:提供USART的状态信息,如发送完成、接收完成等。

2、USART 通讯协议

记忆关键:1 8 n 1 、9600/115200

也就是一个停止位,8个数据位,无奇偶校验位;常用波特率表示每秒传输的比特数

STM32串口编程方式? 轮询、中断、DMA ?

3、什么是DMA ?作用 ?通道、仲裁、方向、字节长度、循环/普通?

通道:DMA控制器通常有多个通道,每个通道可以独立地处理一个外设与内存之间的数据传输。

仲裁:在多个外设请求DMA服务时,DMA控制器需要进行仲裁,以决定哪个外设可以使用DMA通道。

方向:

内存到外设:数据从内存传输到外设。

外设到内存:数据从外设传输到内存。

字节长度:DMA可以配置为传输不同长度的数据(如字节、半字、字等),以适应不同外设的需求。

循环/普通:

普通模式:DMA传输完成后,控制器会停止,CPU需要重新启动传输。

循环模式:DMA可以在传输完成后自动重新启动,适合于需要持续数据流的应用,如音频播放。

4、UART

(Universal Asynchronous Receiver/Transmitter) 代表通用异步收发器(异步串行通信协议中的一种)。它是微控制器内部的硬件外围设备。能够将传入和传出的数据转换为串行二进制流。使用串行到并行转换的方式,能将从外围设备接收的8位串行数据(8位)转换为并行形式(一个字节)。

**UART(通用异步收发传输器)和USART(通用同步异步收发传输器)**是两种串行通信协议,主要区别:

同步与异步:

UART:仅支持异步通信。数据在没有时钟信号的情况下传输,发送和接收设备必须在相同的波特率下工作。

USART:支持同步和异步通信。可以使用外部时钟信号进行同步通信,也可以像UART一样进行异步通信。

数据传输方式:

UART:数据以字节为单位传输,通常使用起始位、数据位、校验位和停止位。

USART:除了支持UART的传输方式外,还可以在同步模式下使用时钟信号进行数据传输,允许更高的传输速率和更可靠的数据传输。

应用场景:

UART:广泛用于简单的串行通信,如微控制器与计算机之间的通信。

USART:适用于需要更高数据传输速率或更复杂通信协议的场合,如在某些工业应用中。

同步/异步收发器

通讯:对话的实现,将一方的信息,以一个合适的方式合理准确地传送给另一方

通信的分类:全双工、半双工、单工 串行/并行 同步/异步

单工:通道是唯一的,接收方Rx 和 发送方Tx身份是唯一的

全双工:通道同时发生

半双工:通道唯一,同一时间只有一个方向的信号传递

5、几个不同的电平标准

1.TTL(晶体管-晶体管逻辑)

逻辑0:0V到0.8V

逻辑1:2V到5V

2.CMOS(互补金属氧化物半导体)

逻辑0:0V到0.3V(相对于电源电压)

逻辑1:0.7V到VDD(电源电压,通常为3V或5V)

3.RS-232

逻辑0(标记状态):+3V到+15V

逻辑1(空闲状态):-3V到-15V

4.LVTTL(低电压TTL)

逻辑0:0V到0.8V

逻辑1:1.5V到3.6V

5.LVCMOS(低电压CMOS)

逻辑0:0V到0.3V(相对于电源电压)

逻辑1:0.7V到VDD(电源电压,通常为1.8V、2.5V或3.3V)

6.USB 2.0

逻辑0(低电平):

电压范围:0V到0.3V

逻辑1(高电平):

电压范围:3.0V到5.0V

接线是需要交叉相连的

6.Stm32串口与RS-232通讯

通讯协议:串口通讯协议

数据线:空闲时,为高电平

起始位:由高电平变成低电平

数据位:7/8/9/10

校验位:奇校验/偶校验

停止位:1/1.5/2 低电平变高电平

1.详细解释

起始位(Start Bit:UART通信的起始位始终为逻辑低电平(0),用于标识数据传输的开始。

数据位(Data Bits):UART通信可以使用5、6、7或8个数据位来传输数据。数据位按照位顺序从最低位到最高位传输。

奇偶校验位(Parity Bit):可选的奇偶校验位用于检测和纠正数据传输中的错误。校验位可以是奇校验(使得数据位的总数包含奇数个1)或偶校验(使得数据位的总数包含偶数个1)。

停止位(Stop Bit):停止位是UART通信的结束位,始终为逻辑高电平(1)。它标识数据传输的结束,并允许接收器进行下一次数据接收的准备。

波特率(Bps): 每秒钟传送的码元数(一个数字脉冲)

USART的框图,主要需要了解数据的传输,与外部的连接以及波特率控制器

UART的实验部分:首先是串口交互的实验

其次是串口控灯实验

最后是串口打印实验

打印:transit或者重定向的方法:用printf进行格式化输出,同时也具有方便的特点

重定向这儿的本质:将要发送的数据,存放到uart的Tx_Data_reg这个寄存器当中

2.Uart 接收和发送思路

PC串口助手发送一个字符串-----G030接收到字符串,并存放到rx数组中,将字符串发送出去—PC中的串口助手显示字符串(将rx中的字符串打印到串口助手的显示界面)

这儿代码存在的问题:发送一次,就不停地打印(因为rx中一直有数据),为了解决这个,引入memset函数,但是还是在空打印,所有再引入if(rx[0]==0)

6、实验

1、串口轮询实验

HAL_UART_Receive()

HAL_UART_Transmit()

2、printf/scanf() 重定向

3、串口控灯

Strstr()

串口控灯实验:

需求:由串口发送指令去控制单片机上的led的亮/灭

“led1_0n” -> led1亮 “led2_on” ->led2亮

流程:串口发送指令,然后是G030接收到指令,并存放在rx数组当中,接着是,用字符串比较函数:strstr,strcmp。。。。。最后是在符合判断的条件下,执行相关应用

” -> led1亮 “led2_on” ->led2亮

流程:串口发送指令,然后是G030接收到指令,并存放在rx数组当中,接着是,用字符串比较函数:strstr,strcmp。。。。。最后是在符合判断的条件下,执行相关应用

[外链图片转存中…(img-7i7tOBdO-1726622404136)]

[外链图片转存中…(img-dAtFrdqR-1726622404136)]

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

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

相关文章

《热血江湖》v23巅峰对决游戏程序(真端+最新官方版本)

《热血江湖》v23巅峰对决游戏程序(真端最新官方版本) 下载地址: 通过网盘分享的文件:【游戏】《热血江湖》v23巅峰对决游戏程序(真端最新官方版本) 链接: https://pan.baidu.com/s/18svlGuFnPM9ccwEAb7oBMw…

肺结节检测-目标检测数据集(包括VOC格式、YOLO格式)

肺结节检测-目标检测数据集(包括VOC格式、YOLO格式) 数据集: 链接:https://pan.baidu.com/s/1hz3Y6WgWoS3Gubsw_83WnA?pwdaon1 提取码:aon1 数据集信息介绍: 共有 1180 张图像和一一对应的标注文件 标注…

输出不能被3整除的数-C语言

1.问题&#xff1a; 统计0~100之间的不能被3整除的数。 2.解答&#xff1a; 对100-200之间的每一个数进行遍历&#xff0c;如果不能被3整除&#xff0c;就将此数输出&#xff0c;若能被3整除&#xff0c;就不输出此数。 3.代码&#xff1a; #include<stdio.h>//头文件…

图像超补全(Outpainting)技术的前沿模型与数据集资源汇总

“lmage outpainting”这一概念是由斯坦福大学 CS230 课程的 Mark Sabini 等人提出&#xff0c;相较于图像修复技术&#xff0c;lmage outpainting 更进一步&#xff0c;能够从给定的图像片段中“补全”出缺失的外延部分&#xff0c;以精妙的方式补全画面&#xff0c;从而构建出…

基于实验的低光照图像增强方法综述

这篇论文的标题是《An Experiment-Based Review of Low-Light Image Enhancement Methods》&#xff0c;作者包括Wencheng Wang、Xiaojin Wu、Xiaohui Yuan 和 Zairui Gao。论文主要回顾了过去几十年中发展的低光照图像增强技术的主要技术。 以下是论文的详细内容概述&#xf…

Flutter中很有意思的Future

最近在使用Flutter来开发完全免费开放的E6开发平台对应的手机app客户端。 由于Flutter基于Dart语言开发&#xff0c;而Dart具有一个非常有趣的特性&#xff1a;Future&#xff0c;如果一个方法如果被定义为Future&#xff0c;意味着它可以被异步调用&#xff0c;这一特性对页面…

用于多模态MRI重建的具有空间对齐的深度展开网络|文献速递--基于多模态-半监督深度学习的病理学诊断与病灶分割

Title 题目 Deep unfolding network with spatial alignment for multi-modal MRI reconstruction 用于多模态MRI重建的具有空间对齐的深度展开网络 01 文献速递介绍 磁共振成像&#xff08;MRI&#xff09;因其无创性、高分辨率和显著的软组织对比度&#xff0c;已成为广…

算法记录——链表

2.链表 2.1判断是否是回文链表 1.方法一&#xff1a;利用栈反转链表 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode…

IO(输入输出流)

1.IO a.介绍 i.IO是指Input和Output&#xff0c;即输入和输出&#xff0c;以内存为中心&#xff1a; 1.Input是指从外部读入数据到内存。 2.Output是指把数据从内存输出到外部。 ii.IO流是一种顺序读写数据的模式&#xff0c;它的特点是单向流动。数据类似自…

【AIGC】ChatGPT提示词解析:如何生成爆款标题、节日热点文案与完美文字排版

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;情绪化的吸睛爆款标题提示词使用方法 &#x1f4af;紧跟节日热点选题文案提示词使用方法 &#x1f4af;高效文字排版技巧提示词使用方法 &#x1f4af;小结 &#x1f4af…

python-获取浏览器静态/动态素材

f12浏览器中 1&#xff1a;静态爬取 2.动态资源图片获取。斗鱼 3获取视频-抖音 一长串&#xff0c;最后一个http就是视频

Unity-物理系统-碰撞检测-物理材质

物理材质的作用&#xff1a;改变碰撞效果 因为碰撞的过程是相互的&#xff0c;所以在碰撞双方都要加相同的物理材质才能实现效果 物理材质创建 参数

【FPGA】IO电平标准

【FPGA】IO 电平标准 1 LVCMOS&#xff08;低压CMOS&#xff09;1.1 TTL、CMOS、LVTTL、LVCMOS逻辑电平定义1.2 ZYNQ-7000 PS、PL IO Level示例 2 LVTTL&#xff08;低压TTL&#xff09;3 HSTL&#xff08;高速TTL&#xff09;4 SSTL&#xff08;高速&#xff09;5 LVDS&#x…

Pytest测试实战|Conftest.py详解

Pytest测试实战 本文章主要详细地阐述下Pytest测试框架中Conftest.py特性。 Conftest.py实战 Fixture强大的特性在实际的工作中是非常有价值并且是实用的&#xff0c;这样可以根据需求&#xff0c;在对应的测试模块中编写Fixture函数来达到测试需求的目的。但是这样也产生了…

【面经合集】Java基础精选面试题(三)

最近&#xff0c;小编整理了不少Java领域面试题&#xff0c;如有需要&#xff0c;点击关注&#xff0c;回复【面试题】&#xff0c;即可下载。 31 、说说List,Set,Map三者的区别&#xff1f; List、Set、Map是三种不同数据结构的集合&#xff0c;它们的主要区别体现在存储方式…

Linux命令:用来列出当前系统内核加载的所有模块的工具lsmod详解

目录 一、概述 二、 使用方法 三、 输出格式 四、 示例 五、 相关命令 六、 高级用法 1、结合管道符 | 和 grep 命令 2、结合其他命令使用 七、应用和注意 一、概述 lsmod 是一个 Linux 命令行工具&#xff0c;用来列出当前内核加载的所有模块。这个命令对于了解哪些模…

分布式计算技术是什么?在数据集成值得作用?

数据是现代科技技术的基础&#xff0c;面对爆炸性数据的增长&#xff0c;要求计算能力要求更高、数据整合和处理更有效&#xff0c;如何应对数据集成带来的挑战&#xff1f;本文将探讨分布式计算技术在数据集成中的优化作用。 一 分布式计算技术。 定义&#xff1a;分布式计算…

《机器学习by周志华》学习笔记-神经网络-02感知机与多层网络

1、感知机 1.1、概念 感知机(Perceptron)由2层神经元模型组织,如下图所示: 「输入层神经元」接收外界输入信号后,传递给「输出层神经元 」 「输出层神经元」是「M-P神经元」,亦称「阈值逻辑单元(threshold logic unit)」 1.2、作用 「感知机」能够容易的实现逻辑「与…

初识前端监控

以下笔记来源&#xff1a;黑马程序员 背景 思考一下&#xff0c;我们的项目代码在上线之后是不是就不用管了呢&#xff1f; 并不是&#xff0c;作为前端开发工程师&#xff0c;我们是直接跟用户打交道的&#xff0c;一个应用的用户留存率跟这个应用的稳定性有很大的关系&…

NXP i.MX8系列平台开发讲解 - 4.2.1 摄像头篇(一) - 认识摄像头模组

专栏文章目录传送门&#xff1a;返回专栏目录 Hi, 我是你们的老朋友&#xff0c;主要专注于嵌入式软件开发&#xff0c;有兴趣不要忘记点击关注【码思途远】 文章目录 目录 1. 引言 2. 嵌入式系统中的CCM应用 3. 摄像头模组的基本组成 4. 摄像头模组的封装工艺 5. 摄像头…