STM32 HAL库定时器不能清零捕获计算器

2019-07-14 14:07发布

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的值

                                          。。。。。。。。。。。。。。。。。。。。
                                          。。。。。。。。。。。。。。。。。。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
a732538
1楼-- · 2019-07-14 18:43
捕获的意思不是“跳变时间点”么,我的理解是这个返回的值是一个时间点,要拿到下一个跳变时间点才能获得脉宽,才算是完成捕获……是不是这样的?
huazhe
2楼-- · 2019-07-14 19:14
你不调用函数,直接修改寄存器,然后再读寄存器看看。
zhuqunwei
3楼-- · 2019-07-14 23:32
a732538 发表于 2019-2-19 12:15
捕获的意思不是“跳变时间点”么,我的理解是这个返回的值是一个时间点,要拿到下一个跳变时间点才能获得脉宽,才算是完成捕获……是不是这样的?

电平跳变的时候  自动把定时器计数器time_cnt读取,并且放入捕获寄存器time_ccr。理论上应该是应该直接清零定时器计数器,调用__HAL_TIM_SET_COUNTER(&htim4,  0);    那么__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_1, 0); 这个函数不知道起什么作用,看意思好像是清除捕获寄存器的值。
zhuqunwei
4楼-- · 2019-07-14 23:36
 精彩回答 2  元偷偷看……
a732538
5楼-- · 2019-07-15 03:30
zhuqunwei 发表于 2019-2-19 12:37
电平跳变的时候  自动把定时器计数器time_cnt读取,并且放入捕获寄存器time_ccr。理论上应该是应该直接清零定时器计数器,调用__HAL_TIM_SET_COUNTER(&htim4,  0);    那么__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_1, 0); 这个函数不知道起什么作用,看意思好像是清除捕获寄存器的值。 ...

进去看下原函数就知道了,是不是强制比较啊,就是直接设置电平,强制产生一次中断,很多单片机的捕获都有这个功能,另外,清零就是直接给计数器清零
huazhe
6楼-- · 2019-07-15 04:34
是的,楼上正解。 当CC同道配置为输入捕捉时,CCR寄存器变为只读。

至于函数功能,点进去往下看就知道了。

一周热门 更多>