方案总路线任务 1先打通编码器采集做最小程序GPIO 配好 PA6、PA7TIM3 配编码器模式while 里读取 CNT用调试器看数值变化目标不是功能炫而是先证明编码器能被定时器正确采到。任务 2再打通 PWM 调光单独做 LED17 的 PWMPA1 配成 TIM2_CH2TIM2 输出 PWM手动改 CCR观察亮度变化先不接编码器。先证明PWM 调光链路是通的。任务 3把两者关联起来再做编码器变 - 亮度变量变亮度变量 - CCR 变化LED17 亮度跟着转钮变化目标是旋钮控制亮度任务 4加按键中断最后做PA5 外部中断按下切换灯亮灭灯亮时允许旋钮调光灯灭时禁止调光这就是完整版本。2、 “重点不是代码而是分层”硬件层你得先知道线怎么接编码器 A/B 到哪个 TIM 通道LED 到哪个 PWM 引脚按键到哪个 EXTI外设层你得知道 STM32 里每个外设干什么TIM2 负责 PWMTIM3 负责编码器模式EXTI 负责按键中断业务层你得知道用户动作怎么映射顺时针 - 亮度加逆时针 - 亮度减按下 - 灯亮灭切换调试层你得知道怎么分步验证先看 CNT再看 PWM再看按键中断最后整合这才是一个成熟开发的思路。3、 定目标“所谓学习使用定时器采集编码器不是背 API而是学会把编码器的 A/B 相交给定时器硬件计数再把计数结果变成实际功能。”这句话才是核心。4、 练按这三练来第一练不控制 LED只看 TIM3-CNT 会不会随旋钮正反转增减。第二练不接编码器只用 TIM2 PWM 让 LED17 在几个固定亮度间切换。第三练把编码器计数结果映射成 PWM 占空比再加 PA5 中断切换开关。5、 总结“学习使用定时器采集编码器”这句话真正的意思是学会看懂编码器硬件学会把 A/B 相接到定时器通道学会配置定时器编码器模式学会读取 CNT 的增减学会把这个结果用于实际控制它不是只学一个函数而是在学一套完整的输入采集思路。
【嵌入式】定时器采集编码器实验点
方案总路线任务 1先打通编码器采集做最小程序GPIO 配好 PA6、PA7TIM3 配编码器模式while 里读取 CNT用调试器看数值变化目标不是功能炫而是先证明编码器能被定时器正确采到。任务 2再打通 PWM 调光单独做 LED17 的 PWMPA1 配成 TIM2_CH2TIM2 输出 PWM手动改 CCR观察亮度变化先不接编码器。先证明PWM 调光链路是通的。任务 3把两者关联起来再做编码器变 - 亮度变量变亮度变量 - CCR 变化LED17 亮度跟着转钮变化目标是旋钮控制亮度任务 4加按键中断最后做PA5 外部中断按下切换灯亮灭灯亮时允许旋钮调光灯灭时禁止调光这就是完整版本。2、 “重点不是代码而是分层”硬件层你得先知道线怎么接编码器 A/B 到哪个 TIM 通道LED 到哪个 PWM 引脚按键到哪个 EXTI外设层你得知道 STM32 里每个外设干什么TIM2 负责 PWMTIM3 负责编码器模式EXTI 负责按键中断业务层你得知道用户动作怎么映射顺时针 - 亮度加逆时针 - 亮度减按下 - 灯亮灭切换调试层你得知道怎么分步验证先看 CNT再看 PWM再看按键中断最后整合这才是一个成熟开发的思路。3、 定目标“所谓学习使用定时器采集编码器不是背 API而是学会把编码器的 A/B 相交给定时器硬件计数再把计数结果变成实际功能。”这句话才是核心。4、 练按这三练来第一练不控制 LED只看 TIM3-CNT 会不会随旋钮正反转增减。第二练不接编码器只用 TIM2 PWM 让 LED17 在几个固定亮度间切换。第三练把编码器计数结果映射成 PWM 占空比再加 PA5 中断切换开关。5、 总结“学习使用定时器采集编码器”这句话真正的意思是学会看懂编码器硬件学会把 A/B 相接到定时器通道学会配置定时器编码器模式学会读取 CNT 的增减学会把这个结果用于实际控制它不是只学一个函数而是在学一套完整的输入采集思路。