打印
[STM32F1]

FREERTOS中定时器的初始化在哪?

[复制链接]
496|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pidnews|  楼主 | 2020-7-30 13:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用stm32cubemx生成的文件,其中timebase source选择了tim2,但生成的main.c里面没有tim2的初始化部分,弄了个最简单的led灯0.1s闪程序跑的也正常,请问tim2的初始化是在哪个文件或者freertos的时间从哪产生的?

使用特权

评论回复
沙发
fionababy| | 2020-7-30 14:52 | 只看该作者
如果用systick的话应该是这样吧   vTaskStartScheduler( void ) ->xPortStartScheduler( void )->__weak void vPortSetupTimerInterrupt( void )
如果你用CUBEMX的话是在STM32FXXX_HAL_TIMEBASE_TIM.C文件里,应为这个时候你选的TIMER变成时基了嘛。

使用特权

评论回复
板凳
香水城| | 2020-7-30 15:40 | 只看该作者
你如果将该定时器选择为OS 的 TICK定时器的话,它的初始化在这个函数里:

HAL_InitTick(uint32_t TickPriority)

文件是:stm32f0xx_hal_timebase_TIM.c

使用特权

评论回复
地板
pidnews|  楼主 | 2020-7-31 10:17 | 只看该作者
香水城 发表于 2020-7-30 15:40
你如果将该定时器选择为OS 的 TICK定时器的话,它的初始化在这个函数里:

HAL_InitTick(uint32_t TickPrio ...

谢谢版主回复,找到了,是在main.c里面
/**
  * @brief  Period elapsed callback in non blocking mode
  * @NOTE   This function is called  when TIM1 interrupt took place, inside
  * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
  * a global variable "uwTick" used as application time base.
  * @param  htim : TIM handle
  * @retval None
  */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  /* USER CODE BEGIN Callback 0 */

  /* USER CODE END Callback 0 */
  if (htim->Instance == TIM1) {
    HAL_IncTick();
  }
  /* USER CODE BEGIN Callback 1 */

  /* USER CODE END Callback 1 */
}
中,但是这个函数里面是uwTick,freertos用的是xTickCount,没看到这两个是在哪个地方关联起来的呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

56

帖子

0

粉丝