你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

[求助+代码]请问初始化定时器以后怎么会自动进一次中断

[复制链接]
beary 提问时间:2016-1-6 11:13 /
在没有使用   TIM_Cmd(TIM2, ENABLE); 使能定时器的时候,stm32会进一次中断吗?

打印如下:
_____MY_TIMERINIT
_____TIM2_IRQHandler


代码如下://这是定时器初始化的函数
void MY_TIMERINIT(int arr,int psc)
{
        TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
        NVIC_InitTypeDef  NVIC_InitStruct;
        printf("\r\n_____%s\r\n",__func__);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
        TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;
        TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseInitStruct.TIM_Period = arr;
        TIM_TimeBaseInitStruct.TIM_Prescaler = psc;
        TIM_TimeBaseInit( TIM2, &TIM_TimeBaseInitStruct);
        TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
        NVIC_InitStruct.NVIC_IRQChannel = TIM2_IRQn;
        NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
        NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1 ;
        NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1;
        NVIC_Init(&NVIC_InitStruct);
}

//这是定时器中断的函数
void TIM2_IRQHandler(void)
{
  printf("\r\n_____%s\r\n",__func__);
        if(TIM_GetITStatus(TIM2, TIM_IT_Update)!=RESET)
        {
        }
}




收藏 1 评论2 发布时间:2016-1-6 11:13

举报

2个回答
xmshao 回答时间:2016-1-6 12:09:58
你按这样顺序安排代码验证下:
TIM_ClearITPendingBit(TIM1, TIM_IT_Update); //清除更新中断请求位
TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE); //使能定时器1更新中断
TIM_Cmd(TIM1, ENABLE); //启动定时器

http://mp.weixin.qq.com/s?__biz=MzA3OTIxMjQyNQ==&mid=205748433&idx=1&sn=e86e3a12d93d702878657eeb2d655020#rd

suoma 回答时间:2016-1-6 22:49:04
楼上说的对,把中断程序往前面写

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版