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

STM32F030系列有关定时器中断问题

[复制链接]
infinity935 提问时间:2017-8-30 18:39 /
             用STM32F030CC芯片做TIM3的定时中断时,中断处理服务函数无法进去,在定时器配置上不知道有没有遗漏的地方。芯片系统时钟是48M,TIM3 500ms进一次中断,中断处理函数是对LED灯进行翻转。下面是我的TIM3初始化,和中断处理函数,大家方便的时候还望帮我看一看,打扰了

void TIM3_Init(void)
{
       
        TIM_TimeBaseInitTypeDef          TIM_TimeBaseInitStructure;
        NVIC_InitTypeDef                NVIC_InitStructure;
       
        RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM3, ENABLE);  //tim3时钟使能,APB时钟48M
               
        TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1; //分频系数为1
        TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数
        TIM_TimeBaseInitStructure.TIM_Period = 499;
        TIM_TimeBaseInitStructure.TIM_Prescaler = 47999;  //定时500ms
        TIM_TimeBaseInit(TIM3, &TIM_TimeBaseInitStructure);

       
        TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
        TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //允许定时器3更新中断
        TIM_Cmd(TIM3,ENABLE); //使能定时器3       

       
        NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //定时器3中断
        NVIC_InitStructure.NVIC_IRQChannelPriority = 0; //优先级0
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
       
}


void TIM3_IRQHandler(void)
{
       
        if(TIM_GetITStatus(TIM3,TIM_IT_Update) != RESET) //溢出中断
        {
                LED2_Turn();  
        }
        TIM_ClearITPendingBit(TIM3,TIM_IT_Update);  //清除中断标志位
}


收藏 评论6 发布时间:2017-8-30 18:39

举报

6个回答
alisa123 回答时间:2017-9-5 08:39:29
你的开Tim3的时钟函数有用错吗?
RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM3, ENABLE);  //tim3时钟使能,APB时钟48M
alisa123 回答时间:2017-9-5 08:43:15
本帖最后由 alisa123 于 2017-9-5 08:44 编辑

标准库中,开时钟的函数应该是RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE)吧,你试试是不是这个原因呢

评分

参与人数 2ST金币 +7 收起 理由
zero99 + 2
creep + 5 很给力!

查看全部评分

tgwfcc 回答时间:2017-9-5 09:08:03
楼主这种问题也来问啊,太不细心了,楼上的说了,时钟打开函数都没写对
无薪税绵 回答时间:2017-9-5 10:06:50
2楼正解:
应该使用:RCC_APB1PeriphClockCmd 函数。

评分

参与人数 1ST金币 +5 收起 理由
creep + 5 赞一个!

查看全部评分

yygkqzh 回答时间:2017-9-5 11:20:20
楼上正解
sting 回答时间:2017-9-5 12:07:47
本帖最后由 sting 于 2017-9-5 12:10 编辑

先设中断部份,最后才使能定时器3,这样试试

评分

参与人数 1ST金币 +5 收起 理由
creep + 5 很给力!

查看全部评分

所属标签

相似问题

官网相关资源

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