STM32_HAL库—PWM输出

一、CubeMX设置:

晶振配置(72M)

在这里插入图片描述

二、PWM配置及实现方式(阻塞-单通道)

1、引脚配置

在这里插入图片描述

2、呼吸灯逐渐点亮控制

(1)具体配置:

在这里插入图片描述
由上推出公式:

	机器周期: (72MHz / 36) = 2MHz = 0.5us

	PWM周期: 0.5 * 100 = 50us &
### 使用 STM32F4 HAL 实现 PWM 输出 #### 初始化定时器并配置PWM功能 为了使能PWM输出,在STM32F4上需调用`HAL_TIM_PWM_Init()`来初始化指定的TIM外设,这一步骤会依据之前通过结构体设定好的参数完成硬件资源分配以及基本工作模式的选择[^1]。 ```c // 定义 TIM_HandleTypeDef 类型句柄变量 htimX 来管理特定定时器实例 X (比如 2, 3...) TIM_HandleTypeDef htimX; void MX_TIMX_PWM_Init(TIM_HandleTypeDef *htim) { // 设置定时器基础属性... if (HAL_TIM_PWM_Init(htim) != HAL_OK) { Error_Handler(); } } ``` #### 配置PWM通道及其特性 接着利用`HAL_TIM_PWM_ConfigChannel()`函数针对具体哪个通道要开启PWM行为做进一步说明,并传递有关该信道的操作细节给底层驱动程序处理,例如选择上升沿还是下降沿有效、初始占空比大小等重要信息。 ```c TIM_OC_InitTypeDef sConfigOC; sConfigOC.OCMode = TIM_OCMODE_PWM1; // 设定为PWM模式1 sConfigOC.Pulse = 0; // 初始占空比值(单位:计数值), 这里先设成最小即关闭状态 sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; // 动作电平极性定义 sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; // 关闭快速模式 if(HAL_TIM_PWM_ConfigChannel(&htimX, &sConfigOC, TIM_CHANNEL_1)!= HAL_OK){ Error_Handler(); // 如果失败则跳转到错误处理器 } ``` #### 启动/停止PWM信号发送 当一切准备就绪之后就可以借助于`HAL_TIM_PWM_Start()/HAL_TIM_PWM_Stop()`这两个API接口控制实际物理层面上是否允许发出PWM波形了。前者负责激活而后者则是用来暂停当前正在运行中的周期性方波序列传输过程。 ```c // 开始PWM输出 if (HAL_TIM_PWM_Start(&htimX, TIM_CHANNEL_1) != HAL_OK) { Error_Handler(); } // 停止PWM输出 if (HAL_TIM_PWM_Stop(&htimX, TIM_CHANNEL_1) != HAL_OK) { Error_Handler(); } ``` #### 修改PWM占空比和预分频系数 如果想要动态调整已经处于活动状态下的PWM脉宽比例或是改变频率的话,则可以分别采用宏指令`__HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__)` 和 `__HAL_TIM_SET_PRESCALER(__HANDLE__, __PRESC__)`来进行实时更新操作。 ```c uint32_t newCompareValue = /* 新的目标比较寄存器值 */; __HAL_TIM_SET_COMPARE(&htimX, TIM_CHANNEL_1, newCompareValue); uint32_t prescalerValue = /* 计算得到的新预分频数 */; __HAL_TIM_SET_PRESCALER(&htimX, prescalerValue); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qq_755682240

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

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

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

打赏作者

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

抵扣说明:

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

余额充值