当前位置: 首页 > news >正文

基于STM32单片机PWM讲解(HAL库)

基于STM32单片机PWM讲解

一、PWM简介

PWM波形(Pulse Width Modulation,脉冲宽度调制波形)是一种占空比可变的脉冲波形。这种调制方式通过改变脉冲的宽度来控制电路中的信号强度和频率。具体来说,PWM波形中的高电平持续时间和低电平持续时间可以根据需要进行调整,从而实现对模拟信号电平的数字编码。

二、PWM原理图

输出比较可以通过**比较定时计数器的值 CNT 与设定的比较值 CCR,**可以控制输出引脚的电平状态(置高或置低),从而实现生成一定频率和占空比的 PWM 波形。
以下是PWM大致原理框图
在这里插入图片描述
以下是PWM大体时序图
在这里插入图片描述
以下是PWM重要参数:
频率 = 1/Ts
占空比 = Ton / Ts【高电平占该周期的比例】
分辨率 = 占空比变化步距【精确占空比变化】
在这里插入图片描述

三、PWM配置

TIM_HandleTypeDef pwm_handle = {0};//有结构体就要寻址到底
TIM_OC_InitTypeDef pwm_config = {0};
void PWM_init(uint16_t ARR,uint16_t PSC)
{pwm_handle.Instance = TIM4;//定时器选择pwm_handle.Init.Prescaler = PSC;//PSC预分频pwm_handle.Init.Period = ARR;//重载寄存数值pwm_handle.Init.CounterMode = TIM_COUNTERMODE_UP;//计数模式(向上计数)pwm_handle.Init.AutoReloadPreload =  TIM_OUTPUTSTATE_DISABLE;//重载寄存器HAL_TIM_PWM_Init(&pwm_handle);pwm_config.OCMode = TIM_OCMODE_PWM1;//PWM模式向上模式pwm_config.Pulse = ARR/2;        //CRR值后面要改现在无所谓pwm_config.OCPolarity = TIM_OCPOLARITY_LOW; //有效电平HAL_TIM_PWM_ConfigChannel(&pwm_handle,&pwm_config,TIM_CHANNEL_3);HAL_TIM_PWM_Start(&pwm_handle,TIM_CHANNEL_3);
}//map初始化
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)//弱函数
{if(htim->Instance == TIM4){GPIO_InitTypeDef gpio_initstruct;//设结构体//打开GPIO的时钟__HAL_RCC_GPIOB_CLK_ENABLE();__HAL_RCC_TIM4_CLK_ENABLE();gpio_initstruct.Pin = GPIO_PIN_8;//根据自己所需功能改引脚gpio_initstruct.Mode = GPIO_MODE_AF_PP;//复用推挽模式gpio_initstruct.Speed = GPIO_SPEED_FREQ_HIGH;//高速gpio_initstruct.Pull = GPIO_PULLUP;         //上拉//调用GPIO初始函数HAL_GPIO_Init(GPIOB,&gpio_initstruct);}
}//修改ccr寄存器值
void set_pwmprogrem(uint16_t val)//修改ccr的值从而(ARR),从而改变脉冲
{__HAL_TIM_SET_COMPARE(&pwm_handle,TIM_CHANNEL_3,val);
}

附图
在这里插入图片描述

相关文章:

  • html css js网页制作成品——HTML+CSS+js美甲店网页设计(5页)附源码
  • pytest 技术总结
  • Windows怎样使用curl下载文件
  • 大模型时代的语言格局演变:为什么是 JavaScript?
  • uml类关系(实现、继承,聚合、组合,依赖、关联)
  • Python并发编程全景解析:多线程、多进程与协程的深度对比
  • 职场十二法则-马方
  • 刚体运动 (位置向量 - 旋转矩阵) 笔记 1.1~1.3 (台大机器人学-林沛群)
  • Python Cookbook-6.11 缓存环的实现
  • 光子计算芯片进展评估:下一代AI算力突破的可能性
  • 逻辑运算符
  • C++之map
  • 缓存替换算法之 FIFO(先进先出)
  • L1-4 零头就抹了吧
  • 图解 Redis 事务 ACID特性 |源码解析|EXEC、WATCH、QUEUE
  • 第5讲:不同杂志风格主题复刻指南——打造像Nature、Science、Cell那样的高水准科研图表!
  • 软件维护类型四大类型(IEEE 14764 标准)
  • 021-C语言文件操作
  • Beta-VAE背景原理及解耦机制分析
  • 悟空统计平台在教育行业的落地:课程转化路径优化实践
  • CSR周刊:李宁打造世界地球日特别活动,珀莱雅发布2024年度可持续发展报告
  • 银川市长信箱被指乱回复:问诗词大会、答工程欠款,官方称工作失误
  • 儒说︱问世间孝为何物
  • 哲学家的生命终章:一场关于存在与消逝的深度对话
  • 福建一改造项目1人高处坠亡且事故迟报41天,住建厅约谈相关责任单位
  • 特朗普称无意解雇鲍威尔,美国股债汇反弹、黄金高位下跌