STM32-PWM驱动呼吸灯——HAL库

(根据B站up主keysking的STM32教程视频的笔记)

【STM32】动画讲解轻松学会STM32的PWM_哔哩哔哩_bilibili

什么是PWM?

PWM,全称为脉冲宽度调制(Pulse Width Modulation),是一种调制技术,用于控制模拟电路中的电源输出。

通过调节信号的占空比(即高电平持续的时间与整个周期的比率)来控制电流或电压,从而实现对设备的控制。

PWM 的优点是可以通过数字信号实现对模拟输出的精确控制,并且由于它在开关之间切换,效率较高。(以下是三种占空比不同的PWM波形)

因为数字信号只有高低电平两种状态,只要不是太强的干扰,都不会影响对电平的判断,因此数字信号传输数据的速度就更快更稳定。

PWM的几个关键参数为:

  • 频率(Frequency):即高低电平切换的速度,切换的速度越快则频率越高,1000Hz的PWM波意味着1秒钟有1000个脉冲

  • 占空比(Duty Cycle):即每个周期内,高电平所占的宽度

    • 例如图中 50% duty cycle,即高/低电平的时间各占50%

    • 图中的75% duty cycle高电平占75%,低电平占25%

    • 图中的25% duty cycle高电平占25%,低电平占75%;

操作步骤:

将SYS设置为Serial Wire模式

然后设置高速时钟源为晶振

在时钟设置里,将HCLK设置为72MHz,然后回车,让其自动设置

接着将TIM3设置为内部时钟,通道1设置为PWM模式(其中,定时器TIM3的通道1为PA6口)

将PSC设置为71、ARR设置为99------则此时PWM的频率为 Freq=72MHz/(72*100)=10000Hz

,此时PWM的周期为0.1ms

点击保存生成代码。

然后,启动PWM---使用代码HAL_TIM_PWM_Start (&htim3, TIM_CHANNEL_1);

因为PWM的占空比由比较寄存器决定,因此,我们调用设置比较寄存器的函数

__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,i);

复制代码
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
	  for(int i=0;i<100;i++)
	  {
		  __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,i);
		  HAL_Delay(20);
	  }
	  for(int i=99;i>=0;i--)
	  	  {
	  		  __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,i);
	  		  HAL_Delay(20);
	  	  }
    
}
相关推荐
星栖与芯3 小时前
LiteOS-M 切换汇编逐行图解(1):汇编是什么·寄存器与栈
汇编·stm32·嵌入式硬件·harmonyos·鸿蒙系统
JNX_SEMI4 小时前
OC5138T 8V~100V超宽输入降压恒流驱动:覆盖12V汽车至72V电动车全场景
单片机·嵌入式硬件
Zw-awa5 小时前
重新认识结构体:为什么 STM32 库函数喜欢接收一大包参数
stm32
智购科技无人售货机工厂5 小时前
2026自动售货机AI智能体架构:从47个小模型到33.7亿Token的工程实践~YH
android·人工智能·驱动开发·单片机·pandas
单片机仿真设计6 小时前
【proteus仿真】基于 STM32 单片机太阳能双轴追踪系统 Proteus 仿真设计(仿真图+程序)
stm32·单片机·嵌入式硬件·proteus·课设
zhangzhangkeji7 小时前
stm32 3-4 : 按键控制 LED,光敏传感器控制蜂鸣器
stm32·arm
Lzh编程小栈7 小时前
STM32 DMA深度解析|原理、完整工作流程、寄存器、中断联动,嵌入式面试高频考点(F1系列)
c语言·stm32·单片机·mcu·面试
新晨单片机设计8 小时前
S016A-基于STM32单片机电子秤(LCD1602显示)【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus
wuyk5558 小时前
从零吃透 MQTT 通信|第 11 章 MQTT 项目调试验证、性能优化、常见疑难问题、OTA 升级基础
c语言·开发语言·stm32·学习·性能优化
辰域电子9 小时前
STM32项目开源:粮仓环境安防监测系统(代码 + 原理图 + 仿真)
stm32·单片机·嵌入式硬件·开源·毕业设计·proteus