STM32采集频率-外部计数方式

STM32采集频率低频用捕获精度很高,测量高频误差有点大,可能是这种方法我掌握的不够好,决定采用外部计数的方法来测量比较高的频率。我是用一个定时器定时一个定时器计数再根据f=n/t算出频率,这种方法方法原理上是定时时间越长求出的频率越高,但是STM32的定时器是16位的,要考虑到计时溢出的情况。关于误差的产生,测量的信号源的精度也是关键,在进入中断的时候,定时器获取计数值都会延时几个微秒,可能会丢失脉冲。我现在这种测量方法测量100K-130k误差大概8-10hz左右。谁有更好的测量高频的方法可以留言交流一下。
先从main函数开始介绍:

int main(void)
{  
	int i;
	SystemInit();
	COMInit(COM2, 115200);
	RCC_Configuration();    /* System Clocks Configuration*/
	GPIO_Configuration();	  /* Configure the GPIO ports */
	Time_Configuration();   /* Time  configuration */
	Tim2_Timer();
	while(1)
		{   
			   printf("Frequency1 is %d HZ.\r\n",Frequency1);
		   //  printf("Frequency2 is %d HZ.\r\n",Frequency2);
	       //Delayms(10);
		for(i=0;i<1000000;i++)
			{}
	  }
}

下面是时钟配置函数:

/*******************************************************************************
* Function Name  : RCC_C
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值