TIM_Prescaler: 定时器预分频器设置,时钟源经该预分频器才是定时器时钟,它设定 TIMx_PSC寄存器的值。可设置范围为 0 至 65535,实现 1 至 65536 分频。 TIM_Period: 定时器周期,实际就是设定自动重载寄存器的值,在事件生成时更新到影子寄存器。可设置范围为 0 至 65535。 根据定时器时钟的频率,比如时钟的频率...
TIM_Prescaler= 1-1;//不同点,1分频,每次遮挡传感器CNT都+1,有分频的话遮挡几次才+1 TIM_TimeBaseInitStructure.TIM_RepetitionCounter= 0; TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStructure); TIM_ClearFlag(TIM2,TIM_FLAG_Update); TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE); NVIC_PriorityGroupConfig(...
CK_PSC 一般为72Mhz(720 0000) ARR 自动重装 对应变量TIM_Period 范围0~65535 PSC 分频 对应变量 TIM_Prescaler 范围0~65535 还有一些具体的操作看代码的注释,套模板即可 1. void Timer_Init(void) 2. {3. RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);4.5. TIM_InternalClockConfig(TIM2);//...
TIM_Prescaler:指定定时器预分频器数值,由TIMx_PSC寄存器配置,可设置范围为0x0000~0xFFFF,即0~65535; TIM_CounterMode:计数模式,可分为向上计数、向下计数以及三种中心对齐模式。而基本定时器只能向上计数; TIM_Period:计数器周期,即自动重装载寄存器TIMx_ARR的值,在事件生成时更新到影子寄存器,由TIMx_CR1寄存器的...
TIM_Prescaler 用户设定的预分频系数,取值范围0~65535。 例如:RCC中AHB=72MHZ、APB1=36MHZ、APB2=72MHZ,则CK_INT=72MKZ。 2. 如何计算定时时间? 上述公式中TIM_Prescaler涉及到寄存器TIMx_PSC 如果TIM_Prescaler设为36000,由上面公式可知: 定时器的计数频率 TIMx_CLK = 72MKZ / 36000 = 2000HZ,则定时器...
当使用外部时钟进行中断时,可以配置ExtTRGFilter参数来选择采样频率,取值范围为:0x00~0x0F,对应上图 */// 选择ETR通过外部时钟模式1输入的时钟voidTIM_ETRClockMode1Config(TIM_TypeDef* TIMx,uint16_tTIM_ExtTRGPrescaler,uint16_tTIM_ExtTRGPolarity,uint16_tExtTRGFilter);// 选择ETR通过外部时钟模式2输入的...
(1) TIM_Prescaler:定时器预分频器设置,时钟源经该预分频器才是定时器时钟,它设定 TIMx_PSC 寄存器的值。可设置范围为 0 至 65535,实现 1 至 65536 分频。 (2) TIM_CounterMode:定时器计数方式,可是在为向上计数、向下计数以及三种中心对齐模式。基本定时器只能是向上计数,即 TIMx_CNT 只能从 0 开始递增...
*参 数:Prescaler 要写入的PSC的值,范围:0~65535 *返回值:无 * 注意事项:PSC和ARR共同决定频率,此函数仅设置PSC的值,并不直接是频率 * 频率Freq = CK_PSC / (PSC + 1) / (ARR + 1) */ void PWM_SetPrescaler(uint16_t Prescaler)
*/voidhalTimerInit(unsigned int period,void(*onTimerIRQ)(void)){/* 保存回调函数 */halTimerOnIRQ=onTimerIRQ;/* 定时器配置结构体 */TIM_TimeBaseInitTypeDef timer3;/* NVIC 配置结构体 */NVIC_InitTypeDef timer3NVIC;/*设置TIM_Prescaler为(48,000-1),那么分频系数为48,000,因此定时器的时钟频率...