STM32的基本定时器配置

STM32的基本定时器配置

stm32f103的定时器种类

1.stm32f103只支持一下11个定时器

1.窗口看门狗定时器

2.独立看门狗定时器

3.TIM 基本定时器(TIM6,TIM7)

4.TIM 通用定时器(TIM2~TIM5)

5.TIM 高级定时器(TIM1,TIM8)

6.SysTick 系统定时器

基本定时器TIM6配置的代码如下:

void tim6_init(uint16_t period, uint16_t prescaler)
{
    // 打开时钟
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);
    
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
	NVIC_InitTypeDef NVIC_InitStructure;
	
	// 初始化结构体为默认值
	// void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);
	TIM_TimeBaseStructInit(&TIM_TimeBaseInitStructure);
	
	// 配置 TIM6 时基单元
	TIM_TimeBaseInitStructure.TIM_ClockDivision     = TIM_CKD_DIV1;  // 基本定时器可以不配置
	//TIM_TimeBaseInitStructure.TIM_CounterMode       = TIM_CounterMode_Up; // 只支持向上计数,可以不配置
	TIM_TimeBaseInitStructure.TIM_Period            = period;
	TIM_TimeBaseInitStructure.TIM_Prescaler         = prescaler;
	// TIM_TimeBaseInitStructure.TIM_RepetitionCounter = ;  // 只有 TIM1, TIM8 使用
	// void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);?
	TIM_TimeBaseInit(TIM6, &TIM_TimeBaseInitStructure);
	
	// 配置 TIM6 的 NVIC
	NVIC_InitStructure.NVIC_IRQChannel = TIM6_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
	NVIC_Init(&NVIC_InitStructure);
	
	// void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState);
	TIM_ARRPreloadConfig(TIM6, ENABLE);
	
	// TIM6 中断配置
	// void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);
	TIM_ITConfig(TIM6, TIM_IT_Update, DISABLE);   // 禁用更新中断,在需要时才打开
	// void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);
	TIM_Cmd(TIM6, DISABLE);  // 停止定时器
}

// 启动定时器计时
void tim6_start(uint16_t arr)
{
	TIM6->ARR = arr;   // 设置重装载值
	TIM_ITConfig(TIM6, TIM_IT_Update, ENABLE);
	TIM_Cmd(TIM6, ENABLE);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值