定时器&PWM应用编程

一、用定时器控制小灯周期性闪烁

1、定时器介绍

基本定时器
基本定时器是一个简单的定时器,通常用于生成精确的时间延迟。它具有单个16位计数器,可以通过设置预分频系数实现不同的计数速度。基本定时器通常用于简单的定时任务。

通用定时器
通用定时器是一种更为复杂和功能强大的定时器,通常用于更复杂的定时和计数任务。STM32系列微控制器通常配备了多个通用定时器,如TIM1、TIM2等。通用定时器具有多个16位或32位计数器,可以通过设置预分频系数和计数周期来实现不同的计数速度和定时精度。
定时器配置
为了配置和控制STM32定时器,我们可以使用相应的库函数或直接操作寄存器。以下是一些常用的配置参数:

  • 预分频系数:用于设置定时器的计数速度,可以根据需要进行调整。

  • 计数周期:用于设置定时器的计数周期,决定定时器溢出的时间间隔。

  • 工作模式:定时器可以工作在不同的模式下,如定时器模式、计数器模式、PWM模式等。

  • 中断使能:可以选择是否使能定时器的中断功能,用于触发中断任务。

定时器的数学公式
在定时器的配置和应用过程中,我们可以使用一些数学公式来计算和调整定时器的参数。以下是一些常用的数学公式:

  • 计数频率:计数频率 = 主时钟频率 / (预分频系数 * 计数周期)
  • PWM占空比:PWM占空比 = (比较值 / 计数周期) * 100%

2、环境搭建

选择用库函数的方式来建立工程

3、代码编写

main.c文件:

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "PWM.h"
 
uint8_t i;
 
int main(void)
{
   
	OLED_Init();
	PWM_Init();
	
	while (1)
	{
   
			PWM_SetCompare1(0);
			Delay_ms(2000);
 
			PWM_SetCompare1(100);
			Delay_ms(2000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值