关于STM32定时器的问题,求解答求解答~~~·

2019-03-23 20:22发布

我原来在学习51单片机的时候知道51的定时器可以当一个“闹钟”用,就是打开它,然后让它一直计数,加到预先设定的值后进入中断。我刚开始接触STM32,也想这么试一下,所以没使用TIM的任何通道,就是设置了时间基,然后打开定时器,但是计数器加到预装载值后,为什么进不去中断呢????求哪位专家帮忙解答下,小弟先行谢过了。
这是我写的程序,
主程序:int main(void)
{
// u32 cnt = 0x000fffff;
  /* System Clocks Configuration */
  RCC_Configuration();
  NVIC_Configuration();
  /* Configure the GPIO ports */
  GPIO_Configuration();
  timer_configuration();
}
设置定时器:void timer_configuration(void)
{
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  TIM_DeInit(TIM3);         /* deinitiate */
  TIM_TimeBaseStructure.TIM_Period =800;   
  TIM_TimeBaseStructure.TIM_Prescaler=0x5;
  TIM_TimeBaseStructure.TIM_ClockDivision=0x0;
  TIM_TimeBaseStructure.TIM_CounterMode =TIM_CounterMode_Up;  
  TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);

  TIM_Cmd(TIM3, ENABLE);
  TIM_ITConfig(TIM3,TIM_IT_CC1,ENABLE);
  TIM_iTConfig(TIM3,ENABLE);
}

中断嵌套部分的设置:
void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;

  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

  NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
daicheng
1楼-- · 2019-03-23 23:48
/ 时钟部分有没有配置呢:RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
zjk200
2楼-- · 2019-03-24 03:02
 精彩回答 2  元偷偷看……
astwyg
3楼-- · 2019-03-24 08:09
沙发正解~如果只是计时.时间短的话用systick也不错~
squn
4楼-- · 2019-03-24 12:11
新手想请教一下想通过io口控制定时器的定时结束,并获取定时器的值应该怎么写呢??
daicheng
5楼-- · 2019-03-24 16:58
 精彩回答 2  元偷偷看……

一周热门 更多>