OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1355|回复: 2

脉冲计数不精确,频率低的时候也会有误差存在

[复制链接]

4

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2023-2-14
在线时间
51 小时
发表于 2023-9-20 17:01:40 | 显示全部楼层 |阅读模式
10金钱
最近做了一个外部脉冲计数的程序,但是精度不是很准确,600HZ的时候就会有1-2个的误差,然后900HZ的时候就有3个的误差,希望有大神帮忙解惑

void TIM4_CH1_Init(void)
{  
   // TIM_IC_InitTypeDef TIM4_CH1Config;
        TIM_ClockConfigTypeDef        sClockSoureConfig;
        sClockSoureConfig.ClockSource=TIM_CLOCKSOURCE_TI1;
        sClockSoureConfig.ClockPolarity=TIM_CLOCKPOLARITY_RISING;
        sClockSoureConfig.ClockFilter=0;

       
    TIM4_Handler.Instance=TIM4;                          //通用定时器5
    TIM4_Handler.Init.Prescaler=0;                     //分频系数
    TIM4_Handler.Init.CounterMode=TIM_COUNTERMODE_UP;    //向上计数器
    TIM4_Handler.Init.Period=0xFFFF;                        //自动装载值
    TIM4_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;//时钟分频银子
    HAL_TIM_Base_Init(&TIM4_Handler);                                                //初始化输入捕获时基参数
        HAL_TIM_ConfigClockSource(&TIM4_Handler,&sClockSoureConfig);
        __HAL_TIM_CLEAR_FLAG(&TIM4_Handler,TIM_FLAG_UPDATE);
                __HAL_TIM_SET_COUNTER(&TIM4_Handler,0);
    __HAL_TIM_ENABLE_IT(&TIM4_Handler,TIM_IT_UPDATE);   //使能更新中断
        //TIM_ITRx_SetConfig(&TIM4_Handler,TIM_TS_TI1FP1);

        __HAL_TIM_ENABLE(&TIM4_Handler);//使能定时器5
       
                HAL_NVIC_SetPriority(TIM4_IRQn,1,0);    //设置中断优先级,抢占优先级2,子优先级0
    HAL_NVIC_EnableIRQ(TIM4_IRQn);          //开启ITM5中断通道  
}


                __HAL_RCC_TIM4_CLK_ENABLE();            //使能TIM5时钟
                __HAL_RCC_GPIOB_CLK_ENABLE();                        //开启GPIOA时钟

                GPIO_Initure.Pin=GPIO_PIN_6;            //PA0
                GPIO_Initure.Mode=GPIO_MODE_INPUT;                 //复用推挽输入
                GPIO_Initure.Pull=GPIO_PULLDOWN;        //下拉
                GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;//高速
                HAL_GPIO_Init(GPIOB,&GPIO_Initure);

最佳答案

查看完整内容[请看2#楼]

已解决,软件没有问题,去掉了硬件电路上的两个电容就OK了,应该是滤波滤了一部分
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2023-2-14
在线时间
51 小时
 楼主| 发表于 2023-9-20 17:01:41 | 显示全部楼层
已解决,软件没有问题,去掉了硬件电路上的两个电容就OK了,应该是滤波滤了一部分
回复

使用道具 举报

4

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2023-2-14
在线时间
51 小时
 楼主| 发表于 2023-9-21 08:13:56 | 显示全部楼层
顶顶顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 22:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表