首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

stm32通用定时器中断有关问题。求解答

2012-04-10 
stm32通用定时器中断问题。。。求解答想写一个4ms中断的程序,发现程序进不了中断。请大侠们帮帮我。不甚感激!部

stm32通用定时器中断问题。。。求解答
想写一个4ms中断的程序,发现程序进不了中断。请大侠们帮帮我。不甚感激!部分代码如下:


VOID funSysApiTimer2Init( VOID )
{
  TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);
  TIM_DeInit(TIM2);
  TIM_TimeBaseStructure.TIM_Period=4; /* 自动重装载寄存器周 期的值(计数值) *//* 累计 TIM_Period个频率后产生一个更新或者中断 */
  TIM_TimeBaseStructure.TIM_Prescaler= (36000 - 1);/* 时钟预分频数 例如:时钟频率=25MHZ/(时钟预分频+1) */
  TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; /* 采样分频 */
  TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; /* 向上计数模式 */
  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
  TIM_ClearFlag(TIM2, TIM_FLAG_Update);/* 清除溢出中断标志 */
  TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
  TIM_Cmd(TIM2, ENABLE);/* 开启时钟 */
}
void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure; 
 
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
  NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;  
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
}


中断程序如下:
if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET ) 
{
  TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update);
gbDrvScanFlag = ON;
  }


[解决办法]
我也正在郁闷中,整了一下午到现在,我就不明白了,代码都和网上的一样,我一遍遍的查过去了,还是不会发生中断。
解决了交流下啊。
帮你顶上去
[解决办法]
问题解决了,很陌名其秒的,程序基本没怎么改,调试前和调试后
出在这
TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct)
没有中断前这TIMX(0X40000000)的地址上 全是空值。赋值语句都没用,全是0。

这下面是成功过的


这个地址上就有东西了。

热点排行