stm32的定时器开发基础

看门狗防止程序跑飞

系统滴答定时器:HAL_Delay()函数

输入捕获是为了测得一些系统的频率

cubemx图形化配置时,需要输入与预分频器(Prescaler)和主计数器(Counter Period)的值

例子:

一般选择内部时钟                                                                

里面的第三行,选择内部时钟

随后设置Prescaler和Counter  Period

然后点NVIC中间这个然后 使能其中断

定时器函数:

1.定时器的初始化:

在这些所有的初始化后,将中断使能放置在其下

(有IT是中断使能定时器,也有非中断对定时器的使能)两个函数都在

stm32xxx_hal_tim.c里面

 HAL_TIM_Base_Start_IT(&htim2);//这部分自己添加, 要在初始化之后,将它中断使能
 HAL_TIM_Base_Start_IT(&htim3);

使能哪些在TIM.c文件里面有

回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  if(htim->Instance==TIM2)
	{
	  HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_9);
	}
	
	if(htim->Instance==TIM3)
	{
	  HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_8);
	}
}

放置在主函数里面

HAL_TIM_TriggerCallback(htim):
当定时器触发器触发时调用的回调函数。
例如,在输入捕获模式下,当定时器的触发器引脚检测到一个上升沿或下降沿时,这个回调函数会被调用。


HAL_TIMEx_BreakCallback(htim):
当定时器捕获到一个break事件时调用的回调函数。
通常用于在定时器的高级模式下(例如主-从模式)处理一些特殊事件。


HAL_TIM_PeriodElapsedCallback(htim):
当定时器的计数器溢出并重新加载时调用的回调函数。
这个回调函数常用于实现周期性任务,比如时间测量或周期性的数据采集。


HAL_TIM_OC_DelayElapsedCallback(htim):
当定时器的输出比较通道延迟时间到达时调用的回调函数。
在输出比较模式下,当定时器的计数器值等于比较寄存器的值时,可以通过这个回调函数执行某些操作。


HAL_TIM_PWM_PulseFinishedCallback(htim):
当定时器的PWM波形生成完成时调用的回调函数。
在PWM输出模式下,当定时器的计数器值达到设定的PWM脉冲周期时,会调用这个回调函数。


HAL_TIM_IC_CaptureCallback(htim):
当输入捕获事件发生时调用的回调函数。
用于捕获外部信号的时间戳或测量外部信号的周期

定时器的中断服务函数:


void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)

void TIM2_IRQHandler(void)
{
  /* USER CODE BEGIN TIM2_IRQn 0 */

  /* USER CODE END TIM2_IRQn 0 */
  HAL_TIM_IRQHandler(&htim2);
  /* USER CODE BEGIN TIM2_IRQn 1 */

  /* USER CODE END TIM2_IRQn 1 */
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值