stm32之普通定时器

#include "time6.h"
#include "Led.h"
void TIME6_Init(void)
{
    // 启用TIM6时钟
    RCC->APB1ENR |= RCC_APB1ENR_TIM6EN;

    // 设置预分频7199, 72000000 10kHZ
    TIM6->PSC = 7199;

    // 自动重装载值9999,技术10000次产生一个UEV
    TIM6->ARR = 9999;

    // 更新中断使能
    TIM6->DIER |= TIM_DIER_UIE;

    // 配置nvic
    NVIC_SetPriorityGrouping(3);
    NVIC_SetPriority(TIM6_IRQn, 0);
    NVIC_EnableIRQ(TIM6_IRQn);

    // 开启定时器
    TIM6->CR1 |= TIM_CR1_CEN;
}

// 中断程序
void TIM6_IRQHandler(void)
{
    // 清中断标志位
    TIM6->SR &= ~TIM_SR_UIF;
    LED_Toggle(LED_1);
}

在这里插入图片描述
注意

  1. 计数器溢出才产生一个更新事件U。
  2. 自动重装载寄存器是带有影子的寄存器,可以手动把预加载寄存器的值刷入(ARPE:自动重装载预装载使能 (Auto-reload preload enable)置零)影子寄存器。如果不开启使能位则在更新事件产生后才刷入。
  3. PSC预分频器也是影子寄存器,但是没有使能位,所以只能通过更新事件的产生才刷入影子寄存器
  4. 如果一开始ARPE置1,那么影子寄存器的值一开始就是0,计数器也
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Young soul2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值