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

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

[复制链接]
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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版