PWM 呼吸灯实验

使用通用定时器产生 PWM 输出:通过 TIM3 的通道 1 输出PWM 信号,控制 D7 指示灯的亮度。

PWM 是 Pulse Width Modulation 的缩写,脉冲宽度调制,简称脉宽调制。PWM 是一种对模拟信号电平进行数字编码的方
法,利用微处理器的数字输出来对模拟电路进行控制。

在这里插入图片描述
方波的占空比被调制,用来对一个具体模拟信号的电平进行编码,PWM 信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OF)。

电压或电流源是以一种通(ON)或断(OF)的重复脉冲序列被加到模拟负载上去的。

只要带宽足够,任何模拟值都可以使用 PWM 进行编码。

a 是一个正弦波即模拟信号,b 是一个数字脉冲波形即数字信号。

计算机只识别1 和 0,对于 STM32F1 芯片,要么输出高电平(3.V),要么输出低电平(0)。

假如要输1.5V 的电压,就进行相应处理,比如本章的PWM 输出。从上图看,只要保证数字信号脉宽足够就可以使用 PWM 进行编码,从而输出 1.5V 的电压。

STM32F1 除了基本定时器 TIM6 和 TIM7,其他定时器都可以产生 PWM 输出。

其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4 路的 PWM 输出,

PWM 的输出就是对外输出脉宽可调(即占空比调节)的方波信号,信号频率是由自动重装寄存器 ARR 的值决定,占空比由比较寄存器 CCRx 的值决定。

占空比其实就是一个周期内高电平时间与周期的比值

PWM 输出比较模式总共有 8 种,具体由寄存器 CMRx 的位OCxM[2:0]配置。

最常用的两种 PWM 输出模式:PWM1PWM2

PWM 呼吸灯实验

APP文件夹pwm.c文件(初始化 PWM)和pwm.h文件。

#include "pwm.h"

//TIM3通道1的pwm初始化函数
void TIM3_CH1_PWM_Init(u16 per,u16 psc)//输入:重装栽值per和分频系数psc
{
   
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
	TIM_OCInitTypeDef TIM_OCInitStructure;
	GPIO_InitTypeDef GPIO_InitStructure;
	
	/* 开启时钟*/
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
	RCC_APB2PeriphClockCmd
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值