蓝桥杯嵌入式——输入捕获测量引脚输出PWM频率

1.将PA7引脚设置为TIMx_CHy

2.激活(Activated)定时器x,让定时器x的通道y为输入捕获模式( Input Capture direct mode )

3.配置定时器x的psc为80-1,使能中断

4.在main函数中打开定时器x中断( HAL_TIM_IC_Start_IT(&htimx,TIM_CHANNEL_y) )

5.设置变量记录频率和CNT的值( uint32_t fre,capture_value )

6.调用捕获输入回调函数

( void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim){

if(htim->Instance==TIM17){

}

} )

7.调用读取捕获CNT值的函数(该函数实际上是读取CCR的值,因为在捕获到上升沿时,会将CNT赋值给CCR)读取CNT的值

( capture_value=HAL_TIM_ReadCapturedValue(htim,TIM_CHANNEL_y)+1

或者capture_value=TIMx->CCRy )

8.读完CNT,将CNT重新赋值为0( TIMx->CNT=0 )

9.带入计算频率公式计算频率( fre=80000000/(80*capture_value) )

10.将fre的值显示在LCD中

HAL_TIM_IC_Start_IT(&htimx,TIMx_CHANNEL_y)

uint8_t capture_value,fre;
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim){
  if(htim->Instance==TIMx){
    capture_value=HAL_TIM_ReadCapturedValue(htim,TIM_CHANNEL_y)+1;
    TIMx->CNT=0;
    fre=80000000/(80*capture_value);
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值