六、2 写PWM代码(函数介绍、呼吸灯代码)

目录

一、1、步骤

2、函数介绍

3、外设引脚和GPIO引脚的复用关系(引脚定义表)

二、1、呼吸灯

步骤

(1)初始化通道

1)输出比较模式

2)输出比较极性

(2)配置GPIO

(3)启动定时器

(4)计算CCR、ARR、PSC

(5)在运行过程中不断更改占空比(也就是更改CCR的值),实现呼吸灯

附加:重映射的使用


一、1、步骤

(1)RCC开启时钟(TIM外设、GPIO外设)

(2)时钟源选择和配置时基单元

(3)配置输出比较单元(CCR的值、输出比较模式、极性选择、输出使能)(时基单元直接到输出比较单元,不用配置NVIC)

(4)配置GPIO(把PWM对应的GPIO口初始化为复用推挽输出的配置)

(5)运行控制,启动计数器

2、函数介绍

3、外设引脚和GPIO引脚的复用关系(引脚定义表)

重映射(配置重映射用AFIO来完成,文章末尾有介绍)

二、1、呼吸灯

步骤

1)开启TIM时钟,选择时基单元的时钟,配置时基单元(初始化时基单元)

2)输出比较初始化(初始化通道)

3)配置GPIO

4)TIM使能(开启定时器)

(1)初始化通道

需要初始化哪个通道,就调用哪个函数

不同的通道对应的GPIO口不一样

PA0 口对应第一个输出比较通道

TIM2是通用定时器,把需要用到的参数列出就行,

注意:但用不到的参数就没有初始值,当将 TIM2 改成 TIM1(高级定时器)时可能会导致高级定时器输出PWM出现问题。为了避免出现问题,①要么将结构体的所有成员都配置完整(没用的也配置一下),②要么就先给结构体成员都附一个初始值,再修改部分结构体成员。

方法②

1)输出比较模式

输出比较模式,输出比较极性,输出状态(输出使能),设置CCR寄存器值

2)输出比较极性

(2)配置GPIO

GPIO输出模式要用复用推挽输出

推挽输出引脚的控制权来自输出数据寄存器

复用推挽输出 可将引脚控制权交给片上外设

这里的片上外设引脚连接的是TIM2的CH1通道

(3)启动定时器

(4)计算CCR、ARR、PSC

(5)在运行过程中不断更改占空比(也就是更改CCR的值),实现呼吸灯

附加:重映射的使用

选部分重映射1 或完全重映射

将GPIO中的Pin_0改成Pin_15

  • 24
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值