1. 什么是嵌入式系统?简述嵌入式系统组成
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
组成:
- 硬件层:嵌入式处理器、存储器(ROM/RAM/Flash)、外设接口、电源模块等
- 软件层:板级支持包(BSP)、嵌入式操作系统(可选)、应用程序
2. STM32是什么?常见的内核型号有哪些?
STM32是意法半导体(ST)公司推出的一系列基于ARM Cortex-M内核的32位微控制器(MCU)。
常见内核型号:
- Cortex-M0/M0+(入门型,如STM32F0、STM32L0)
- Cortex-M3(基础型,如STM32F1、STM32L1)
- Cortex-M4(带FPU,如STM32F4、STM32L4)
- Cortex-M7(高性能,如STM32F7)
- Cortex-M33(带安全功能,如STM32L5、STM32U5)
3. 常用的STM32开发工具有哪些?
- IDE开发环境:Keil MDK-ARM、IAR EWARM、STM32CubeIDE
- 配置工具:STM32CubeMX(图形化配置外设、生成初始化代码)
- 调试工具:ST-Link/V2、J-Link
- 编程工具:STM32CubeProgrammer(烧录程序)
4. 什么是标准库,什么是HAL库?
- 标准库(StdPeriph Library):ST早期推出的固件库,直接操作寄存器封装的函数库,代码执行效率高,用户需要手动配置外设初始化,学习门槛稍高。
- HAL库(Hardware Abstraction Layer):ST后期推出的硬件抽象层库,基于标准库封装,提供更通用的API,支持STM32全系列,可配合STM32CubeMX生成初始化代码,开发效率高,便于跨型号移植。
5. STM32的中断优先级如何配置?
STM32的中断优先级由抢占优先级 和响应优先级组成,配置步骤:
- 配置
NVIC_PriorityGroupConfig设置优先级分组(决定抢占优先级和响应优先级的位数) - 对每个中断通道配置
NVIC_InitTypeDef结构体,指定抢占优先级和响应优先级 - 调用
NVIC_Init完成配置
规则:
- 抢占优先级高的中断可打断低抢占优先级的中断
- 抢占优先级相同时,响应优先级高的先执行
- 不同分组下,抢占/响应优先级的取值范围不同
6. STM32的GPIO工作模式有哪些?
常见8种模式:
- 输入浮空
- 输入上拉
- 输入下拉
- 模拟输入
- 通用推挽输出
- 通用开漏输出
- 复用功能推挽输出
- 复用功能开漏输出
7. STM32的三种系统时钟源
- HSI(高速内部时钟):内部RC振荡器,频率一般为8MHz,启动快但精度稍低
- HSE(高速外部时钟):外部晶振/陶瓷谐振器,常见8MHz/16MHz,精度高
- PLL(锁相环):可由HSI或HSE倍频得到,用于生成更高频率的系统时钟(如72MHz、168MHz)
8. STM32的USART的功能特点
- 支持全双工异步通信,波特率可编程设置
- 支持同步通信模式(带时钟输出)
- 支持NRZ数据格式,可配置数据位(8/9位)、停止位(1/1.5/2位)、校验位(无/奇/偶)
- 支持硬件流控制(RTS/CTS)
- 支持多机通信模式
- 可通过DMA、中断方式收发数据
- 支持LIN、IrDA、SmartCard等扩展功能
9. STM32通用定时器TIMx的特性与特殊工作模式
特性:
- 16位自动重载计数器,支持向上/向下/中心对齐计数模式
- 可编程预分频器,分频系数1~65535
- 4个独立通道,可用于输入捕获、输出比较、PWM生成
- 支持DMA、中断触发
- 可触发ADC、DAC等外设
特殊工作模式:
- PWM输出模式(边沿对齐/中心对齐)
- 输入捕获模式(测量脉冲宽度、频率)
- 输出比较模式(定时输出、波形生成)
- 单脉冲模式(OPM)
- 编码器模式(读取正交编码器信号)
- 从模式(外部触发计数、复位、门控)