我有一个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库在没有计时器的情况下也可以正常工作,所以这不是我的屏幕问题。
我是初学者,所以请务必保持体贴!谢谢
我显然认为“ peroid”仅应设置为使用中断,否则将被忽略。但是必须提供它以便于简单使用。因此,将其设置为0即可启动并重置计时器。