• STM32 基础知识


    1. STM32微控制器的核心特性是什么?

    • STM32微控制器是基于ARM Cortex-M 处理器 , 它具有高性能处理能力和低功耗的特性 , 适合用于嵌入式系统
    • STM32系列具有多种多样的内存大小和丰富的内置外设选项,包括 多通道ADC , 定时器 , 通信接口 UART ,SPI , I2C,此外它支持广泛的中断和事件管理,并且提供了复杂的电源管理方案**

    2. 如何配置STM32的GPIO进行数字输入输出?

    • 首先我们需要使能GPIO的时钟
    • 使用库函数来对GPIO端口进行初始化,比如配置引脚位推挽输出,配置它的速度,配置上下拉电阻
    • 最后我们通过寄存器 ODR(输出数据寄存器) 以及BSRR(置位/复位寄存器) 来对引脚输出高低电平

    3. 在STM32中如何实现定时器的配置和使用?

    • 定时器的配置首先要选择合适的定时器并开启时钟, 然后设置预分频来决定定时器的时钟频率,以及设置自动重载寄存器来确定溢出时间,即定时周期
    • 在配置好基本定时参数后,可以选择定时器模式,如基本计数模式或者更复杂的PWM输出模式。
    • 在定时器中断后,可以实现周期性的任务。
    • 通过库函数 可以来启动定时器启用中断

    4. 什么是PLL

    • PLL (phase-locked-loop) 是一种电子控制系统 , 它能够调整振荡的频率使得它和其他频率或者相位 保持同步 , 主要是由三部分组成 , 相位比较器 , 低通滤波器 , 以及压控振荡器
    • PLL 广泛用于STM32 中, 它能使得 稳定的外部或者内部时钟 生成我们想要的系统时钟频率, 比如在STM32F4 中 , 我们可以使用8MHZ 的时钟源 进行分屏调整成100MHZ 的时钟 ,从外为CPU 和 外设提供时钟

    5. 在单片机中 SPI , I2C 以及 UART 的区别和联系

    5.1 区别和联系

    • 速度 : SPI 是三者中最快的, 适合高速传输 。 UART 速度适中, 适合中长距离通信 。 I2C 的速度相对较慢, 但足以满足多数外设的需求
    • 复杂性: SPI 相对简单 但是需要更多的 IO 口线 . UART 最简单 只需要两根线 , I2C 复杂性适中,但提供了更灵活的总线控制
    • 硬件需求:UART硬件需求最简单 , SPI 以及I2C 需要更多的硬件支持,尤其是处理多个设备的时候

    5.2 SPI(Serial Peripheral Interface)

    1. 特点:
      • 快速的全双工通信 , 可以同时发送和接收
      • 基于主从架构, 一个设备可以控制多个从设备, 但同时只与一个设备进行通信
      • 通信涉及4条线 : MOSI , MISO , SCK , CS
      • 不需要任何地址和协议来控制数据流
    2. 应用场景:
      • 高度数据传输 ,例如SD 卡 TFT显示屏等

    5.2 UART(Univeral Asynchronous Receiver / Transmitter)

    1. 特点:
      • 异步通信,没有时钟线, 仅依靠波特率传输
      • 通常用于点对点传输, 只涉及两根线 :TX , RX
      • 传输数据时需要起始位和停止位来表示数据包的开始和结束
      • 错误校检能力弱, 只依赖奇偶校检位
    2. 应用场景:
      • 用于长距离或者低速通信设备 , 例如GPS 模块, 串口调试 与PC通信等

    5.2 I2C(Inter - Intergrated Circuit)

    1. 特点:
      -半双工通信,同一时刻只能发送或者接收
      • 基于主从架构, 支持多主多从的配置, 每个设备都有唯一的 地址
      • 通信涉及两根线 SDA 和 SCL
      • 需要地址来确定通信的目标设备
    2. 应用场景:
      • 用于低速外围设备, 如传感器 ,EEPROM , LCD 显示器等

    6. UART通信中的挑战:

    “UART通信没有时钟信号来同步数据传输。在这种情况下,如何确保数据的正确传输和接收?并描述一下在实现UART通信时可能会遇到的挑战和如何解决这些挑战。”

    • UART是一种异步通讯协议其主要挑战包括
      1. 同步问题:用于缺乏共享时钟 , 接收双方必须知道发送方的波特率来正确解码信号
      2. 错误检测: UART 通常依赖起始位 , 停止位以及可选的奇偶校验位来进行基本的错位检测, 但是对于高误码的环境这可能有点不够
      3. 长距离通讯问题: 长线上可能出现信号衰减和出现噪声干扰等问题
    • 解决办法:
      1. 使用一致的波特率和标准的帧格式(起始位 , 停止位 , 奇偶校检位) 来确保数据的正确传输和接收
      2. 在噪声多的环境 , 使用差分信号来提高信号的鲁棒性
      3. 使用额外的错误检测和纠正机制 , 来提高数据传输的可靠性

    6.1 关键词:

    异步 ,一致波特率 ,标准数据帧 ,信号衰减  噪声
    
    • 1

    7. 描述一下嵌入式基于ROM 和基于RAM 运行方式的异同

    1. 基于RAM 的运行方式

    • **数据存储:**程序和数据存储在RAM 中 , 可读可写 ,便于在运行时修改数据, 断电之后数据会消失, 不能用来保存数据
    • 运行速度 : 运行的速度慢,程序需要从其他存储介质加载,可能会导致延迟。
    • 适用场景 : 适合需要频繁的修改或者更新程序的地方使用,如开发和调试过程

    2. 基于ROM的运行方式

    • 数据存储:程序和数据 存储在ROM中 , ROM只允许之读操作 , 写入通常在生产过程中完成 ,断电之后数据依然存在
    • 运行速度: 运行速度较快,适合即插即用
    • 适用场景: 适合不需要或者很少更新的应用 。

    7.1 关键词:

    可读可写 , 只读 , 运行快, 断电数据消失 , 即插即用
    
    • 1

    8 . 哈佛结构和冯诺依曼结构的区别

    1. 冯诺依曼结构 :
      • 指令和数据存储在同一个地方,通过同一根总线进行传输, 就像图书馆只有一个书架, 指令和数据都放在上面, 但是你要拿的时候,每次只可以拿一个,不能同时拿两个 。
      • 优点:布局简单,易于编程
      • 缺点: 指令和数据的获取不能同时进行 , 可能导致瓶颈(称为冯诺依曼瓶颈)
    2. 哈佛结构:
      • 指令和数据分开存储 ,有着各自的总线进行传输。 就像图书馆有两个书架, 数据和指令分开放在两个书架,可以同时拿两个
      • 优点: 高效快捷, 可以分别获取指令和数据,避免了瓶颈
      • 缺点: 设计更复杂, 成本更高 。

    8.1 关键词:

    指令和数据, 分开存储, 共同存储
    
    • 1

    9. 中断和异常有什么区别

    1. 中断(Interupt)
      • 来源: 是指由外部硬件产生的一个电信号从cpu中断引脚进入, 打断cpu的运行 。 中断事由外部硬件或外部设备触发的
      • 目的: 中断能使处理器响应异步事件 ,当中断发生时, 处理器暂停当前的任务, 转而去处理中断服务进程(ISR)的特殊函数,响应外部中断
      • 特点: 中断可以由用户软件层面控制 , 中断系统通常与硬件驱动和操作系统相关联
        2.异常(exceptions)
      • 来源 : 指软件运行过程中发生了一些必须做出处理的事件,异常在处理的时候必须考虑与处理器的时钟同步,也称同步中断 。
      • 目的: 异常处理允许操作系统捕捉错误或特殊情况,然后决定如何处理,例如终止有问题的程序或提供一个错误报告。
      • 特点: 异常通常表明程序中的错误或特殊情况,需要操作系统的干预。
        中断和异常都是处理器设计中处理特殊情况的机制, 中断只要用于响应外部硬件设备或者事件, 而异常用于处理程序执行过程中的错误或特殊情况 。

    9.1 关键词

    外部硬件设备或事件 , 软件运行错误 ,同步中断
    
    • 1
  • 相关阅读:
    Plotly(一) —— 配置项&图表类型
    C++标准模板(STL)- 类型支持 (数值极限,min,lowest,max)
    Qt学习总结之QAbstractButton类
    在TypeScript项目中搭配Axios封装后端接口调用
    SpringBoot之yaml
    Abp框架Web站点的安全性提升
    【面试题】Vue2动态添加路由 router.addRoute()
    【2023最新B站评论爬虫】用python爬取上千条哔哩哔哩评论
    2024全国水科技大会之工业危废资源化利用技术论坛
    安卓玩机搞机之卡刷包 线刷包与刷机中一些故障解决与问题分析
  • 原文地址:https://blog.csdn.net/chunchun2021/article/details/134659899