嵌入式 基础知识

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 关键词:

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

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

1. 基于RAM 的运行方式

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

2. 基于ROM的运行方式

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

7.1 关键词:

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

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

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

8.1 关键词:

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

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

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

9.1 关键词

外部硬件设备或事件 , 软件运行错误 ,同步中断
  • 11
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值