求助各位坛友,关于定时器定时的问题!!!

2019-07-20 06:33发布

新手村村民求助各位坛友,我想问一下,定时器的定时时间,下面的代码为什么是将定时器4定时1S。用的是8M的晶振,芯片是STM32l4RGT,我想的是用8M除以Prescaler再乘以Period应该是等于10 000 000Hz应该就是10MHz不应该是10S秒吗?
void tim4_init(void)
{
__HAL_RCC_TIM4_CLK_ENABLE();
Tim4Handle.Instance=TIM4;                          
Tim4Handle.Init.Prescaler=(uint32_t) (8000 - 1);                  
Tim4Handle.Init.CounterMode=TIM_COUNTERMODE_UP;   
Tim4Handle.Init.Period=10000-1;                        
Tim4Handle.Init.ClockDivision = 0;
HAL_TIM_Base_Init(&Tim4Handle);   
HAL_TIM_Base_Start_IT(&Tim4Handle);
HAL_NVIC_SetPriority(TIM4_IRQn,9,0);   
HAL_NVIC_EnableIRQ(TIM4_IRQn);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
坐看风
1楼-- · 2019-07-20 11:36
理论是正确的,如果有问题考虑定时器4最终时钟频率是不是8M
易方亮
2楼-- · 2019-07-20 14:31
 精彩回答 2  元偷偷看……
edmund1234
3楼-- · 2019-07-20 20:16
 精彩回答 2  元偷偷看……
大有可为
4楼-- · 2019-07-21 00:09
10MHz是10S没看懂(按照你的意思,10mS?),晶振频率不等于时钟频率吧?
1208
5楼-- · 2019-07-21 00:22
理论计算出来是10s,看看设置时钟分割:TDTS = Tck_tim之类的
坐看风
6楼-- · 2019-07-21 04:55
 精彩回答 2  元偷偷看……

一周热门 更多>