当前位置: 首页 > news >正文

STM32外设面试速通:UART、I2C、SPI、DMA、RAM/FLASH与ADC/DAC

目录

1.  什么是UART?什么是USART?二者有什么区别?

1.1  UART

1.2  USART

1.3  对比

2.  同步通信和异步通信

3.  什么是I2C,I2C时序图

4.  什么是SPI,SPI时序图

5.  什么是DMA

6.  我们通常所说的波特率9600bps,这个bps的意思是?

7.  FLASH和RAM的区别

8.  ADC和DAC有什么区别?


1.  什么是UART?什么是USART?二者有什么区别?

1.1  UART

        UART,全称是 Universal Asynchronous Receiver/Transmitter,即通用异步收发传输器。它是一种硬件设备(或微控制器中的一个模块),用于通过异步串行通信协议在两个设备之间传输数据。

核心特点:

  • 异步通信:这是最关键的一点。通信双方没有统一的时钟信号。发送器和接收器必须事先约定好相同的通信参数(波特率、数据位、停止位、校验位),依靠数据帧的起始位和停止位来同步单个字符的传输。

  • 全双工:可以同时进行数据的发送和接收(通常需要两根数据线:TXD用于发送,RXD用于接收)。

  • 点对点:通常用于两个设备之间的通信。

  • 帧结构:数据被封装成“帧”进行传输。每一帧包含:

    • 起始位:一个逻辑低电平,标志一帧数据的开始。

    • 数据位:实际要传输的数据(通常是5-9位,最常见的是8位)。

    • 校验位:可选的错误检测位(奇校验或偶校验)。

    • 停止位:一个或多个逻辑高电平,标志一帧数据的结束。

常见应用场景:

  • 通过串口(COM口)连接计算机和调制解调器、老式鼠标、路由器等。

  • 微控制器与GPS模块、蓝牙模块、Wi-Fi模块的通信。

  • 嵌入式系统的调试信息输出(Console)。

  • USB转TTL串口模块,使得现代电脑可以通过USB与UART设备通信

1.2  USART

        USART,全称是 Universal Synchronous/Asynchronous Receiver/Transmitter,即通用同步/异步收发传输器,从名字就可以看出,它是UART的超集。一个USART模块可以被配置为工作在两种模式下:

  • UART模式(异步):此时它的功能与一个标准的UART完全相同。
  • 同步模式:这是UART所不具备的功能。

同步模式的核心特点:

  • 同步通信:需要一根额外的时钟信号线。发送方(通常是主设备)会生成一个时钟信号,接收方(从设备)根据这个时钟来采样数据。这消除了对波特率严格匹配的依赖,可以实现更高速度和更可靠的数据传输。

  • 时钟信号:这根额外的线(在SPI中通常叫SCK,在I2C中叫SCL)用于同步数据位。

  • 可支持协议:同步模式使其能够支持像 SPII2C 这样的同步串行通信协议(需要额外的逻辑来实现协议细节,USART硬件本身不直接等同于SPI或I2C,但可以配置时钟和数据极性等来适配)。

1.3  对比

特性UART(通用异步收发器)USART(通用同步/异步收发器)
全称Universal Asynchronous Receiver/TransmitterUniversal Synchronous/Asynchronous Receiver/Transmitter
通信模式仅异步同步 和 异步
时钟信号不需要单独的时钟线同步模式下需要额外的时钟线(CK)
硬件复杂性相对简单更复杂,因为它包含了UART的所有功能并增加了同步逻辑
成本通常更低通常更高
数据可靠性依赖双方波特率的精确匹配,长距离或高速时易出错同步模式下由硬件时钟同步,更可靠,抗干扰能力更强
速度相对较低(常见于115200bps等)同步模式下可以达到更高的数据传输速率
灵活性只能进行异步通信更灵活,可在同步和异步模式间切换,适应更多应用场景
数据帧使用起始位和停止位异步模式下与UART相同;同步模式下帧结构可能不同(取决于配置)

2.  同步通信和异步通信

同步通信:在同步通信中,发送方和接收方的时钟是相互关联的,数据的传输和接收是基于一个共同的时钟信号进行同步的。发送方在每个时钟周期内按照时钟的节拍发送数据,接收方也按照同样的时钟节拍接收数据。双方通过时钟信号的同步来保证正确的数据传输。同步通信对时序要求较高,需要在通信双方之间建立稳定的时钟信号。

异步通信:在异步通信中,发送方和接收方没有共同的时钟信号进行同步。数据的传输和接收不依赖于特定的时钟信号,而是通过特定的起始位和停止位来标识数据的传输开始和结束。每个数据帧都有自己的起始和停止位,这样接收方可以通过检测起始和停止位来识别每个数据帧。异步通信相对较为灵活,但需要额外的控制位来标识起始和停止。

特征同步通信异步通信
时钟共享时钟,有专用的时钟线无共享时钟,双方依赖各自独立的内部时钟
数据流数据块连续传输,无额外标识数据以“帧”为单位,每帧有起始/停止位
效率高,无额外开销,适合大数据量较低,每帧有起始/停止位等开销
硬件复杂度较高(需要时钟线)较低(通常只需数据线)
距离和成本通常用于板内短距离通信,成本敏感更适合长距离通信,成本较低
时序要求对时钟信号的时序要求极高对双方波特率的一致性要求极高

3.  什么是I2C,I2C时序图

嵌入式面试八股文(八)·单工、半双工、全双工的区别以及常用通讯接口简介_全双工半双工单工-CSDN博客

4.  什么是SPI,SPI时序图

嵌入式面试八股文(八)·单工、半双工、全双工的区别以及常用通讯接口简介_全双工半双工单工-CSDN博客

5.  什么是DMA

        DMA(直接存储器访问) 提供在外设与内存、存储器和存储器、外设与外设之间的高速数据传输使用。

  • 存储器→存储器(例如:复制某特别大的数据buf)
  • 存储器→外设(例如:将某数据buf写入串口TDR寄存器)
  • 外设→存储器(例如:将串口RDR寄存器写入某数据buf)

        它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU,在这个时间中,CPU 对于内存的工作来说就无法使用。简单来说就是一个数据搬运工。

DMA的意义主要体现在以下几个方面:

  • 代替CPU搬运数据,为CPU减负:数据搬运是一个耗时的任务,如果由CPU来执行数据传输操作,会占据CPU的大量时间和计算资源。通过利用DMA机制,外部设备可以直接与内存进行数据传输,无需CPU的参与,从而减轻了CPU的负担,使其能够专注于执行其他更重要的任务。
  • 数据搬运工作时效要求高:某些场景下,数据的及时传输非常重要,例如实时流媒体、快速数据采集等应用。DMA能够以高效率和高速度进行数据传输,满足对数据及时性的要求。
  • 数据搬运任务缺乏技术含量:相比于其他计算任务,数据搬运任务相对简单,缺乏复杂的计算和逻辑操作。通过将数据搬运任务交给DMA执行,CPU可以节省出宝贵的时间和资源,用于执行更具技术含量的计算和处理任务。

6.  我们通常所说的波特率9600bps,这个bps的意思是?

        我们通常所说的波特率9600 bps,这里的 bps 的全称是 Bits Per Second,中文意思是 位每秒 或 比特率。它表示每秒钟传输的二进制位数(bit的数量)。

        在绝大多数简单的串行通信(如UART)中,波特率在数值上等于比特率。因此我们经常混用这两个词。但实际上,它们有细微的技术区别:

  • 比特率:指单位时间内传输的二进制位数。单位就是 bps。它衡量的是实际数据位的速度

  • 波特率:指单位时间内传输的符号(或信号事件)的数量。单位是波特。它衡量的是信号变化的速率

7.  FLASH和RAM的区别

        把它们想象成办公室的桌面和文件柜:

  • RAM(内存) 就像你的 办公桌面。

  • FLASH(闪存) 就像你的 文件柜。

RAM - 办公桌面(临时工作区):

  • 为什么需要它?:CPU的处理速度极快,但如果每次都直接从“文件柜”(FLASH)里取文件,速度太慢,CPU就会“饿死”。所以需要一个极快的工作区来存放CPU正在处理的“急件”。

  • 工作原理:

    • 当你打开一个程序(比如游戏或Word文档),系统会把它从“文件柜”(FLASH)里拿出来,放到“桌面”(RAM)上,这样CPU就能快速处理了。

    • 你编辑文档时,所有的修改都暂时保存在“桌面”(RAM)上。

    • 一旦断电(比如关机或停电),就像有人一下子掀翻了你的桌子,桌面上所有没保存的东西都会消失。这就是RAM的易失性。


FLASH - 文件柜(长期存储区):

  • 为什么需要它?:用来长久地保存你的数据,即使设备关机断电,数据也不会丢失。

  • 工作原理:

    • 你的操作系统、应用程序、文档、照片、视频等都存放在这里。

    • 当你需要运行一个程序或打开文件时,就从“文件柜”里把它拷贝到“桌面”(RAM)上进行操作。

    • 保存文件这个动作,其实就是把“桌面”(RAM)上修改好的数据,写回“文件柜”(FLASH)里归档。

    • 它的特点是断电后数据不丢失(非易失性),但读写速度,尤其是写入速度,比RAM慢得多。

特性RAM(随机存取存储器)FLASH(闪存)
中文名内存、运行内存闪存、闪存存储器
功能角色临时工作区长期存储区
易失性易失性 - 断电后数据全部丢失非易失性 - 断电后数据依然保存
速度非常快相对较慢(尤其是写入速度)
寿命理论上无限次读写有擦写次数限制(通常足够用到设备淘汰)
主要用途临时存放正在运行的程序和数据永久存放需要保存的程序、文件、系统
成本单位容量成本较高单位容量成本较低
类比办公桌面 - 你正在处理的文件都放在桌上文件柜 - 所有归档和待用的文件都放在里面
在电脑中的例子内存条固态硬盘、BIOS芯片
在手机中的例子运行内存机身存储

8.  ADC和DAC有什么区别?

一句话总结:

  • ADC:将连续的模拟信号转换为离散的数字信号。
  • DAC:将离散的数字信号转换为连续的模拟信号。
特性ADC(模数转换器)DAC(数模转换器)
全称Analog-to-Digital ConverterDigital-to-Analog Converter
中文名模数转换器数模转换器
核心功能从模拟到数字从数字到模拟
信号转换方向模拟信号 → 数字信号数字信号 → 模拟信号
好比翻译官,将人类的语言(模拟)翻译成计算机的语言(数字)翻译官,将计算机的语言(数字)翻译成人类的语言(模拟)
关键参数分辨率、采样率、信噪比分辨率、建立时间、无杂散动态范围
主要过程采样 → 量化 → 编码解码 → 重建
应用举例麦克风、温度传感器、数字示波器扬声器/耳机、电机驱动、可编程电源

千题千解·嵌入式工程师八股文详解_时光の尘的博客-CSDN博客

STM32学习笔记_时光の尘的博客-CSDN博客

http://www.dtcms.com/a/536515.html

相关文章:

  • “芯”动力,净无止境:华芯微特的吸尘器控制方案详解
  • FFmpeg 基本数据结构 AVIOContext分析
  • SAP SD系统开票审批功能分享
  • 有口碑的常州网站优化wordpress发邮件慢
  • 注册中心(discovery)和配置中心(config)
  • Abaqus部件间Cohesive单元建立的共面识别技术
  • 建设网站有哪些步骤金螳螂装饰公司
  • 商城网站建设公司排行在线代理网页浏览
  • 【Linux】多线程同步与互斥机制详解:从互斥锁到条件变量与信号量
  • iOS混淆实战用多工具组合把IPA加固做成可复用的工程能力(iOS混淆 IPA加固 无源码混淆
  • RTPENGINE ISSUE 1818(silent-timeout有关)
  • LeetCode:231. 2 的幂/136. 只出现一次的数字
  • Flutter fedaora42 64位安装 避坑指南
  • Docker自动化部署与配置详解③
  • istio业务返回503问题
  • 建设服装网站的意义国内免费空间可以做什么网站
  • 餐饮商城网站制作多少钱动漫设计一年学费多少
  • Web 前端工具全流程指南 从开发到调试的完整生态体系
  • 清理谷歌浏览器垃圾文件 Chrome “User Data”
  • 科技创新的重要前沿是新网站前期seo怎么做
  • [论文笔记•(多智能体)]LLMs Can Simulate Standardized Patients via Agent Coevolution
  • CAS:2055198-03-1,PC-Biotin-PEG4-NHS carbonate在分子标记与生物分析中的应用潜力
  • 人工智能时代医疗大健康微服务编程:架构与实践(代码部分)
  • 【论文阅读】AAAI 2025 | 面向精确分割式联邦学习的多模型聚合与知识重放
  • 网站建设对工厂意义外贸网站建设智能建站
  • 小企业网站建设公司哪家好深圳做网站服务
  • 《地理信息系统》第四章空间数据结构学习笔记
  • docker网络代理
  • 域名买了之后如何建设网站公司形象墙
  • RabbitMQ延迟队列详解