中级会员
 
- 积分
- 268
- 金钱
- 268
- 注册时间
- 2014-1-15
- 在线时间
- 0 小时
|

楼主 |
发表于 2015-6-2 16:25:08
|
显示全部楼层
我的定时器延时程序:
void TIM2_Configuration(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //时钟打开。TIM2是挂接在APB1下面的
TIM_TimeBaseStructure.TIM_Prescaler =7200-1; //时钟预分频数(PSC)
TIM_TimeBaseStructure.TIM_Period =10-1; //重装载值(ARR)
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Down; //向下溢出
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
}
/********************************************************************************************************************************
* @brief 延时函数
* @param 毫秒数
* @retval None
*/
void Delay_ms(u16 n)
{
u16 TIMCounter = n;
TIM2_Configuration();
TIM_Cmd(TIM2, ENABLE);
TIM_SetCounter(TIM2, TIMCounter); //设置计数值
while (TIMCounter>0)
{
TIMCounter = TIM_GetCounter(TIM2);
}
TIM_Cmd(TIM2, DISABLE);
}
|
|