STM32F103输入捕获实战:5分钟搞定PWM频率测量(附避坑指南)
在嵌入式开发中,精确测量PWM信号的频率和占空比是常见需求。STM32F103系列微控制器内置的定时器输入捕获功能,为这一需求提供了硬件级的解决方案。本文将带你快速掌握如何利用TIM模块实现PWM信号的自动测量,并分享实际项目中容易忽略的关键细节。
1. 硬件配置与初始化
1.1 定时器时钟与GPIO设置
STM32F103的TIM3定时器通道1(对应PA6引脚)是输入捕获的典型配置。首先需要开启相关时钟:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO应配置为上拉输入模式,这是最稳定的信号采集方式:
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
1.2 时基单元配置
定时器的时基单元决定了测量基准频率。推荐配置如下:
| 参数 | 推荐值 | 作用说明 |
|---|---|---|
| TIM_Prescaler | 72-1 | 将72MHz时钟分频为1MHz |
| TIM_Pe |

&spm=1001.2101.3001.5002&articleId=154724183&d=1&t=3&u=5b05db9a28cf4059a0150dba51c4dcce)
303

被折叠的 条评论
为什么被折叠?



