初级会员

- 积分
- 77
- 金钱
- 77
- 注册时间
- 2017-9-18
- 在线时间
- 20 小时
|
发表于 2020-11-12 14:36:23
|
显示全部楼层
你好,我用例程改为,27分频4M的频率计数,但是测量到4KPWM的时候就存在8HZ的误差了。100K误差就更大了。我想问一下有没有提高计数频率但是不影响我计算频率时由于估算出现的误差呢
int main(void)
{
long long temp=0;
Cache_Enable(); //打开L1-Cache
HAL_Init(); //初始化HAL库
Stm32_Clock_Init(432,25,2,9); //设置时钟,216Mhz
delay_init(216); //延时初始化
uart_init(115200); //串口初始化
TIM5_CH1_Cap_Init(0XFFFF,27-1); //以4MHZ的频率计数
while(1)
{
delay_ms(5);
if(TIM5CH1_CAPTURE_STA&0X8000) //成功捕获到了一次高电平
{
temp=TIM5CH1_CAPTURE_STA&0X3FFF;
temp*=0XFFFF; //溢出时间总和
temp+=TIM5CH1_CAPTURE_VAL; //得到周期
// wave_filter(100,temp);
printf("F:%lf HZ\r\n",1/(temp*0.00000025)); //打印频率
TIM5CH1_CAPTURE_STA=0; //开启下一次捕获
}
}
}
|
|