1. 项目概述
STM32C092RC作为STMicroelectronics新推出的C0系列入门级MCU,其PWM功能在实际工程应用中扮演着重要角色。这次我们重点测评开发板上的PWM外设功能,通过实操演示如何配置定时器输出PWM信号,并验证其控制效果。
PWM(脉冲宽度调制)是嵌入式开发中最常用的外设功能之一,广泛应用于电机控制、LED调光、电源管理等领域。相比传统GPIO输出,PWM能以数字信号实现模拟量控制,具有效率高、控制精确的特点。在STM32C0系列上,PWM功能主要通过通用定时器(TIM)实现。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件环境准备
2.1 开发板资源确认
STM32C092RC开发板搭载了一颗用户LED(LED2),连接在PA5引脚上,这个引脚正好对应TIM2_CH1通道,非常适合用来演示PWM调光效果。此外,板上还预留了多个GPIO测试点,方便连接示波器或其他外设验证PWM输出。
2.2 所需工具清单
- STM32CubeIDE开发环境(版本1.11.0或更高)
- ST-Link V2调试器(板载)
- 示波器(可选,用于观测波形)
- 杜邦线若干(如需外接负载)
提示:虽然C0系列定位入门级,但其PWM分辨率和支持的频率范围完全能满足大多数应用场景需求。
3. PWM基础配置
3.1 时钟树配置
首先在STM32CubeMX中配置系统时钟:
- 选择HSI作为时钟源(16MHz)
- 配置PLL将主频提升至48MHz
- 确保TIM2时钟使能
对于PWM应用,时钟配置直接影响输出频率精度。STM32C0的定时器时钟与APB总线时钟同步,不需要额外分频。
3.2 定时器参数计算
以生成1kHz PWM信号为例:
- 定时器时钟 = 48MHz
- 预分频器(PSC)设为47 → 计数器时钟 = 48MHz/(47+1) = 1MHz
- 自动重载值(ARR)设为999 → PWM频率 = 1MHz/(999+1) = 1kHz
占空比通过CCR寄存器设置,比如CCR=300表示30%占空比。
3.3 CubeMX图形化配置步骤
- 在Pinout视图中将PA5配置为TIM2_CH1
- 在Configuration标签页选择TIM2
- 工作模式选择"PW
