stm32f103c8t6学习笔记 DAY5 基本定时器

定时器类型可分为:

1.基本定时器:定时中断,主模式触发DAC

2.通用定时器:拥有基本所有功能,输入捕获、输出比较,额外具有内外时钟选择

3.高级定时器:具备重复计数、互补输出、刹车输入

配置流程:

1.开启对应TIM外设时钟。

2.开启内部时钟。

3.定义结构体,利用定时器配置函数配置定时器基本参数。

4.定义定时器中断配置。

5.配置NVIC优先级分组。

6.定义NVIC结构体,初始化NVIC。

7.使能定时器。

8.查找启动md文件,命名中断函数名称

具体代码如下

void Timer_Init(void)
{
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//使能时钟
    
    TIM_InternalClockConfig(TIM3);//开启内部时钟
    
    TIM_TimeBaseInitTypeDef TIM_TimebaseStruct;//定义结构体
    TIM_TimebaseStruct.TIM_ClockDivision = TIM_CKD_DIV1;//一分频
    TIM_TimebaseStruct.TIM_CounterMode = TIM_CounterMode_Up;//向上计数模式
    TIM_TimebaseStruct.TIM_Period = 10000-1;//计数10000
    TIM_TimebaseStruct.TIM_Prescaler = 7200-1;//预分频7200
    TIM_TimebaseStruct.TIM_RepetitionCounter = 0;
    TIM_TimeBaseInit(TIM3,&TIM_TimebaseStruct);
    
    TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);//定时中断配置
    
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//NVIC分组优先级配置
    
    NVIC_InitTypeDef NVIC_Structure;
    NVIC_Structure.NVIC_IRQChannel = TIM3_IRQn;//TIM3中断
    NVIC_Structure.NVIC_IRQChannelCmd = ENABLE;//使能
    NVIC_Structure.NVIC_IRQChannelPreemptionPriority = 2;//抢占优先级
    NVIC_Structure.NVIC_IRQChannelSubPriority = 1;//响应优先级
    NVIC_Init(&NVIC_Structure);
    
    TIM_Cmd(TIM3,ENABLE);//使能
}

void TIM3_IRQHandler(void)//中断执行函数
{
    if(TIM_GetITStatus(TIM3,TIM_IT_Update) == SET)//如果中断标志位置为SET
    {
        
        count ++;//执行count++操作
        TIM_ClearITPendingBit(TIM3,TIM_IT_Update);//清除中断标志位
    }
}
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值