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

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扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版