name: stm32-hal description: STMicroelectronics STM32 HAL 和底层驱动程序专业知识 category: 厂商特定 allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
STM32 HAL/LL 技能
概述
此技能提供针对意法半导体(STMicroelectronics)STM32微控制器的专家级支持,包括HAL驱动程序使用、底层(LL)驱动程序优化以及STM32CubeMX集成。
能力
STM32CubeMX 集成
- 配置文件解读
- 代码生成定制
- 引脚和外设分配
- 时钟树配置
- 中间件集成
HAL 驱动程序使用
- HAL初始化和配置
- 回调函数注册与处理
- 与HAL集成的DMA
- 中断模式操作
- 轮询模式操作
- HAL超时处理
底层(LL)驱动程序
- LL驱动程序优化
- 直接寄存器访问模式
- HAL到LL的迁移
- 混合HAL/LL使用
- 性能关键型实现
时钟配置
- 时钟树设置与优化
- PLL配置
- 外设时钟门控
- 时钟源选择
- HSE/HSI/LSE/LSI配置
DMA 配置
- DMA流/通道选择
- 循环和普通模式
- 双缓冲区配置
- DMA中断处理
- 内存到内存传输
外设配置
- GPIO配置与模式
- 定时器配置(PWM,输入捕获)
- ADC/DAC设置与校准
- 通信外设(UART,SPI,I2C)
- USB设备/主机配置
电源管理
- 睡眠和停止模式进入
- 待机模式配置
- 低功耗运行模式
- 唤醒源配置
- 电压调节
目标流程
bsp-development.js- STM32 BSP实现device-driver-development.js- STM32驱动程序开发dma-optimization.js- DMA配置与调优low-power-design.js- STM32功耗优化hardware-bring-up.js- STM32板卡启动
依赖项
- STM32CubeMX
- STM32 HAL/LL库
- STM32CubeIDE(可选)
- 设备特定固件包
使用场景
此技能在以下任务需要时被调用:
- STM32外设配置
- HAL/LL驱动程序实现
- 时钟树优化
- DMA设置与调优
- 电源模式配置
支持的系列
- STM32F0, F1, F2, F3, F4, F7
- STM32G0, G4
- STM32H5, H7
- STM32L0, L1, L4, L4+, L5
- STM32U5
- STM32WB, WL
配置示例
使用DMA的UART
huart1.Instance = USART1;
huart1.Init.BaudRate = 115200;
huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE;
huart1.Init.Mode = UART_MODE_TX_RX;
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
HAL_UART_Init(&huart1);
HAL_UART_Receive_DMA(&huart1, rx_buffer, RX_SIZE);
LL GPIO 电平翻转
LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_5);
LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_5);
LL_GPIO_TogglePin(GPIOA, LL_GPIO_PIN_5);