Stm32 平台下的驱动实现:
开启一个 1 毫秒定时器,可参考如下代码,调用一下函数 TIM4_start();即可:
/* TIM4 configure */
static void TIM4_Configuration(void)
{
/* 时钟及分频设置 */
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
/* Time Base configuration */
/* 72M / 72 = 1us */
// 这个就是预分频系数,当由于为 0 时表示不分频所以要减 1
TIM_TimeBaseStructure.TIM_Prescaler =72-1; //72000 - 1;
//计数模式:向上计数
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
//这个就是自动装载的计数值,由于计数是从 0 开始的
//TIM_TimeBaseStructure.TIM_Period =0xffff;//
TIM_TimeBaseStructure.TIM_Period =0x03e8;//1ms
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
//重新计数的起始值
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
// TIM IT enable
TIM_ITConfig(TIM4, TIM_IT_CC1, ENABLE); //打开溢出中断
// TIM enable counter
TIM_Cmd(TIM4, ENABLE);//计数器使能,开始工作
}
|