void HAL_
tiM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
if (htim->Instance == TIM4)
{
if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1)
{
ccr_cur = __HAL_TIM_GET_COMPARE(&htim4, TIM_CHANNEL_1);
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_1, 0); //dbug 不能清零捕获计算器
dbug_data = __HAL_TIM_GET_COMPARE(&htim4, TIM_CHANNEL_1);
//dbug 读取仍然为ccr_cur的值
。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。
电平跳变的时候 自动把定时器计数器time_cnt读取,并且放入捕获寄存器time_ccr。理论上应该是应该直接清零定时器计数器,调用__HAL_TIM_SET_COUNTER(&htim4, 0); 那么__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_1, 0); 这个函数不知道起什么作用,看意思好像是清除捕获寄存器的值。
一周热门 更多>