STM32G4 蓝桥杯嵌入式 定时器的输入捕获

本模块使用LCD显示测出的频率

LCD教程

板载频率控制器有两个,R39和R40,是板上的两个蓝色小旋钮(R37和R38是电压输出)

原理:

定时器输入捕获模式 捕获待测信号连续两个上升沿(或下降沿),在CRR计数器内计数,当系统时钟配置为80MHz时,将PSC设置为79,即80分频,CRR计数器以1MHz的速率进行计数。

在第一个上升沿(或下降沿)出现时,CRR计数器被清零,第二个上升沿(或下降沿)出现时,记录该计数值并产生中断,在中断函数内即可读取该计数值。

使用 

f=\frac{1MHz}{N},计算频率,N为CRR计数值。

注意,16位计数器的最高计数值为65535,如果待测信号的周期过长,会使CRR计数溢出。

查阅原理图:

R40对应的引脚为PA15

CubeMX配置:

时钟配置为80MHz;

配置PA15为TIM2的通道1(其余引脚为LCD的配置)

TIM2配置如图,未框选的默认

 记得打开TIM2的中断

 编程部分:

在主函数内使用HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);

启动定时器

 使用中断回调函数,当产生中断时,读取计数器内的值,同时清零计数器

void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
	{

		crr_value = __HAL_TIM_GET_COUNTER(&htim2);      //读取计数值
		
			__HAL_TIM_SET_COUNTER(&htim2,0);            //清空计数器
		
		f = 1000000/(float)crr_value;                   //计算频率
			HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);  //重新启动中断函数
		
	}

 同时使用LCD显示待测信号的频率,转动R40可观察到频率变化

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值