stm32f103C8,初始化定时器3时死机

2019-09-03 13:28发布

  1. <div>在使用stm32f103C8时,在main函数中调用TIM3_Int_Init();时会卡死,</div><div>debug时可以看到在</div><div>NVIC_Init(&NVIC_InitStructure);  //初始化NVIC寄存器</div><div>就不在继续了。</div><div>
  2. </div><div>TIM3_Int_Init();配置如下,谢谢解答。</div><div>
  3. </div><div>void TIM3_Int_Init(void)
  4. {
  5.     TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  6.         NVIC_InitTypeDef NVIC_InitStructure;

  7.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能
  8.         //定时器TIM3初始化
  9.         // 19-------35999------10MS  定时
  10.         TIM_TimeBaseStructure.TIM_Period = 9; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值       
  11.         TIM_TimeBaseStructure.TIM_Prescaler =7199; //设置用来作为TIMx时钟频率除数的预分频值
  12.         TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim
  13.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式
  14.         TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位

  15.         TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //使能指定的TIM3中断,允许更新中断
  16. //        TIM_ClearITPendingBit(TIM3,TIM_IT_Update);//中断标志位清除
  17.         //中断优先级NVIC设置
  18.         NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //TIM3中断
  19.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  //先占优先级0级
  20.         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //从优先级3级
  21.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
  22.         NVIC_Init(&NVIC_InitStructure);  //初始化NVIC寄存器
  23.         TIM_Cmd(TIM3,ENABLE);       
  24. }</div>
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。