STM32 CCR寄存器

1. CCR寄存器在输入捕获模式下的特性

  • 只读属性
    当定时器通道配置为输入捕获模式(如捕获上升沿/下降沿)时,CCR寄存器硬件自动变为只读。软件写入操作无效,只能在捕获事件发生时由硬件自动更新为当前CNT值。
  • 硬件自动装载
    当指定的边沿(如PA8下降沿)触发捕获时,硬件自动将当前计数器值(CNT)写入CCR寄存器,并置位中断标志位(如TIM_IT_CC1)。

⚙️ ​2. 清零机制:硬件复位CNT计数器

用户代码中通过主从模式实现了间接清零效果:

cpp 复制代码
TIM_SelectInputTrigger(TIM1, TIM_TS_TI1FP1);   // 选择PA8作为触发源
TIM_SelectSlaveMode(TIM1, TIM_SlaveMode_Reset); // 复位模式:PA8下降沿复位CNT
  • 工作流程
    1. PA8下降沿 → 触发硬件复位信号 → CNT计数器立即清零并重启计数。
    2. CCR1的值 :在中断中读取TIM1->CCR1时,实际是复位前CNT的值(即信号周期)。
    3. CCR2的值 :在PA9下降沿触发时,硬件捕获当前CNT值(即PA9与PA8的时间差)。

✅ ​关键点​:CCR寄存器存储的是捕获瞬间的CNT值,而CNT的清零由硬件自动完成,与CCR无关。


📥 ​3. 中断服务中的操作

在中断函数中,​只需读取CCR值并清除中断标志,无需操作CCR寄存器:

cpp 复制代码
void TIM1_CC_IRQHandler(void) {
    if (TIM_GetITStatus(TIM1, TIM_IT_CC1) != RESET) {
        Cycle = TIM1->CCR1;  // 读取周期值(CNT复位前的值)
        TIM_ClearITPendingBit(TIM1, TIM_IT_CC1); // 清除中断标志
    }
    if (TIM_GetITStatus(TIM1, TIM_IT_CC2) != RESET) {
        Phase = TIM1->CCR2;  // 读取相位差(PA9下降沿时的CNT值)
        TIM_ClearITPendingBit(TIM1, TIM_IT_CC2); // 清除中断标志
    }
}
  • 中断标志的作用
    仅表示"捕获事件已发生",清除后等待下次事件。
  • CCR值更新
    下一次捕获事件发生时,硬件自动覆盖CCR寄存器的值。

⚠️ ​4. 常见误区与注意事项

误区 正确理解
手动写CCR1=0 ❌ 输入捕获模式下无效,CCR只读。
CNT复位=CCR清零 ❌ CNT清零由硬件完成,CCR存储的是复位前的值。
不清除中断标志 ❌ 导致中断持续触发,CPU被阻塞。

💎 ​总结

  • CCR清零机制 :通过TIM_SlaveMode_Reset在PA8下降沿硬件自动复位CNT,实现计数器的周期性清零。
  • CCR寄存器角色:只读存储单元,记录捕获瞬间的CNT值(周期或相位差)。
  • 软件操作 :仅需在中断中读取CCR值 + 清除中断标志,无需操作CCR寄存器。

🔍 ​验证方法 ​:在调试时监控TIM1->CNTTIM1->CCR1,可观察到PA8下降沿时CNT被清零,而CCR1的值保持不变直至下次捕获。

相关推荐
月阳羊2 小时前
【硬件-笔试面试题】硬件/电子工程师,笔试面试题-26,(知识点:硬件电路的调试方法:信号追踪,替换,分段调试)
笔记·嵌入式硬件·面试·职场和发展
嵌入式小白牙5 小时前
ARM-I2C软实现
stm32·单片机·嵌入式硬件
金色光环5 小时前
【阅读整理】野火ADC_AD7192模块资料
单片机·嵌入式硬件
jllllyuz5 小时前
基于AD7147电容触摸芯片与STC12C5A60S2单片机方案
单片机·嵌入式硬件
范纹杉想快点毕业9 小时前
ZYNQ芯片,SPI驱动开发自学全解析个人笔记【FPGA】【赛灵思
stm32·单片机·嵌入式硬件·mcu·架构·51单片机·proteus
景彡先生9 小时前
STM32 GPIO(通用输入输出)详解:从模式原理到实战应用
stm32·单片机·嵌入式硬件
苏州向日葵9 小时前
篇五 网络通信硬件之PHY,MAC, RJ45
网络·嵌入式硬件
GalaxySinCos9 小时前
07 51单片机之定时器
单片机·嵌入式硬件·51单片机
flashier10 小时前
ESP32学习笔记_Peripherals(4)——MCPWM基础使用
单片机·学习·esp32·pwm·mcpwm
书山有路勤为径~10 小时前
1 51单片机-C51语法
单片机·嵌入式硬件·51单片机