找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2286|回复: 1
打印 上一主题 下一主题
收起左侧

关于STM32F407定时器配置的分享

[复制链接]
跳转到指定楼层
楼主
ID:374815 发表于 2018-7-19 14:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void TIM2_Configuration(void)
{
    TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
     NVIC_InitTypeDef NVIC_InitStructure;
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);  ///使能TIM2时钟  APB1 42M   定时器时钟2倍频即84M
       
    TIM_TimeBaseInitStructure.TIM_Period = 999;         //自动重装载值arr 定时器时钟84M,分频系数84,所以84M/84=1000Khz的计数频率,计数1000次为1ms   
    TIM_TimeBaseInitStructure.TIM_Prescaler = 83;  //定时器分频psc
    TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
    TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;   
    TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStructure);//初始化TIM2

    TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE); //允许定时器2更新中断
    TIM_Cmd(TIM2,ENABLE); //使能定时器2
    TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update); //选择TRGO触发源为计时器更新时间  计数值为0时刻

        //TIM2 系统1ms定时器中断配置
    NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 7;//这个数越小优先级越高   先占优先级
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//响应优先级
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);  
}

void TIM2_IRQHandler(void)
{
    if(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET) //溢出中断
    {
        Bootloader1Ms();//系统1ms定时器函数   
    }
    TIM_ClearITPendingBit(TIM2,TIM_IT_Update);  //清除中断标志位
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:374815 发表于 2018-7-19 14:16 | 只看该作者
附件为源码

USER.rar

1.01 KB, 下载次数: 8, 下载积分: 黑币 -5

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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