如何使用st's HAL(STM32F4)测量STM32经过的时间

问题描述 投票:0回答:1

我有一个STM32F407ZG,我正在使用TIM3测量我的“ TFT_Draw”保持恒定的60fps刷新率所花费的时间。

我的预分频器设置为3,000,内部时钟为168MHz,我的APB2最终为84MHz。如果我是对的,则每个刻度是1000/28000毫秒我使用CubeMX来生成init文件,所以这里我唯一的代码是:

uint16_t elapsed, lastElapse;
HAL_TIM_Base_Start(&htim3);

  while (1)

  {
    /* USER CODE END WHILE */

/* USER CODE BEGIN 3 */

        for(i = 0; i < 200; i++) {
            lastElapse = __HAL_TIM_GET_COUNTER(&htim3);
            TFT_DrawFillRect(10,10,300+i,50, Purple);
            TFT_DrawFillRect(10,10,300+i,50, White);
            elapsed = __HAL_TIM_GET_COUNTER(&htim3);
            while((elapsed - lastElapse) < 460) {
                elapsed = __HAL_TIM_GET_COUNTER(&htim3);
            }
        }

[她,紫色是我的背景色,我正在尝试制作一个简单的动画,以查看它是否正常工作,并且绝对是静态的。同时,如果我将时间从小于更改为大于,则屏幕会随机刷新自身(没有任何时间限制)

TFT库在没有计时器的情况下也可以正常工作,所以这不是我的屏幕问题。

我是初学者,所以请务必保持体贴!谢谢

timer stm32 hal stm32f4
1个回答
0
投票

我显然认为“ peroid”仅应设置为使用中断,否则将被忽略。但是必须提供它以便于简单使用。因此,将其设置为0即可启动并重置计时器。

© www.soinside.com 2019 - 2024. All rights reserved.