新手上路
- 积分
- 46
- 金钱
- 46
- 注册时间
- 2013-7-29
- 在线时间
- 0 小时
|
今天遇到了一个很奇怪的事情。我在TIM初始化中第一步RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);之后TIM的ARR寄存器就已经被设置成0xFFFF了。我还没有进行过TIM_TimeBaseInit操作,ARR就已经被设置了。将TIM4换成TIM3同样的情况。这是什么原因?将该程序移植到另一个工程中确不会出现这种现象。我很费解,求高手指点
这是TIM初始化程序
void time4_init(void)
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
TIM_DeInit(TIM4);
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = 65535;
TIM_TimeBaseStructure.TIM_Prescaler = 0;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
/* Prescaler configuration */
TIM_PrescalerConfig(TIM4, 72, TIM_PSCReloadMode_Immediate);
/* TIM4 enable counter */
TIM_Cmd(TIM4, ENABLE);
}
在主程序中第一个就是进入该初始化函数,前面没有进行任何其他操作。
|
|