OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4060|回复: 3

STM32定时器问题

[复制链接]

12

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2013-8-18
在线时间
7 小时
发表于 2013-9-20 11:16:24 | 显示全部楼层 |阅读模式
今天我用stm32的定时器3做定时,我将中断函数的函数名写错了,这样当定时到来时,CPU会怎么执行呢?(正常情况下,CPU会去执行中断子函数,可是我现在中断函数名写错了,相当于没有中断服务函数)
我经调试发现,要是没有中断服务程序的话,那么在主函数执行的过程中,当执行到定时器初始化的函数时就会停下来,不执行下面的程序。不知道我的这个验证是否正确。要是正确的话,那么执行到定时器初始化以后CPU干嘛了呢?

定时器初始化程序如下:

#include "stm32f10x.h"
#include "tim.h"

void TIM3_Init(void)
{
  NVIC_InitTypeDef NVIC_InitStruct;
  TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; 

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); 
  TIM_TimeBaseInitStruct.TIM_Prescaler=7200-1; //72Mhz/7200=10khz
  TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;
  TIM_TimeBaseInitStruct.TIM_Period=5000-1; //5000*(1/10000)=0.5s
  TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;
  TIM_TimeBaseInitStruct.TIM_RepetitionCounter=0;
  TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStruct);
  TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); 
  TIM_Cmd(TIM3,ENABLE); 


  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  NVIC_InitStruct.NVIC_IRQChannel=TIM3_IRQn;
  NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=1;
  NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;
  NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;
  NVIC_Init(&NVIC_InitStruct);
}

中断服务子函数为:

void TIM3_IRQnHandler(void) //正确的写法是TIM3_IRQHandler ,没有n
{
 if(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET)
 {
  LED1_CROSS;
 }
  TIM_ClearITPendingBit(TIM3,TIM_IT_Update);                              
}

主函数如下:
int main(void)
{
LED_Init();    //这个初始化后LED应该都是亮着的
TIM3_Init(); //这个初始化后,每隔0.5S中断一次。
LED_ALL_OFF; //如果执行到这句话那么LED等应该都灭了,可是实测LED等都是亮着的。说明程序并没有执行到这一句。
}












正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-20 16:35:24 | 显示全部楼层
回复 支持 反对

使用道具 举报

51

主题

1455

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2613
金钱
2613
注册时间
2011-1-25
在线时间
176 小时
发表于 2013-9-20 16:39:42 | 显示全部楼层
你仿真下就能找到问题。。
一直努力就很好。
回复 支持 反对

使用道具 举报

12

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2013-8-18
在线时间
7 小时
 楼主| 发表于 2013-9-22 15:48:36 | 显示全部楼层
回复【3楼】qq942266575:
---------------------------------
谢谢,我用串口试验了,试验结果跟我的想法一致!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-13 01:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表