历史上的今天
返回首页

历史上的今天

今天是:2025年12月08日(星期一)

正在发生

2022年12月08日 | 单片机输出PWM常见方法和注意事项

2022-12-08 来源:zhihu

PWM的应用可以说非常广泛,控制电机速度、灯光亮度、通信调制等众多领域。

PWM的问题小伙伴问的比较多,最近也在用PWM,这里就分享一下关于PWM的一些内容。

什么是PWM?

PWM:Pulse Width Modulation,脉冲宽度调制。

网上的解释很多,通过下图,你就能直观的理解PWM,其实就是高低电平组成的脉冲信号。

通过改变其中频率(脉冲周期)、占空比,就能应用在很多场合。

PWM常见输出方式

通过上面描述,PWM就是一个IO口以不同的时间周期输出高、低电平。

1.新手(菜鸟)级别while循环中,阻塞延时,控制IO口高低输出:

阻塞延时可以是:软件模拟延时,定时器阻塞延时等。

2.入门(初级)级别while循环中,非阻赛延时,控制IO口高低输出:

非阻赛延时可以是:定时器标识检测、RTOS(系统)延时等。

3.熟悉(中级)级别定时器中断控制IO高低电平输出:

定时器中断配置 ——> 启动定时器 ——> 响应中断,控制IO高低电平···

4.熟练(中级+)级别

定时器PWM硬件控制输出:

配置PWM对应的IO,以及定时器PWM输出 ——> 启动PWM自动输出···

比较:
上面几种PWM输出方式,前面三种都会CPU干预PWM的输出,也就是会占用CPU资源,特别是前面两种方式,不仅占用CPU,误差还比较大。

使用第三种中断方式,如果频率比较高,CPU消耗的也比较严重。这种情况适合于没有硬件PWM输出的单片机。

第四种就是单片机自带硬件PWM输出功能,只需要简单配置就可以自动输出PWM波形,无需CPU干预。

硬件输出PWM例子

这里以大家熟悉的STM32F1为例:为大家简单分享一下硬件定时器输出PWM波形。

PWM定时器相关宏定义:

PWM配置:

PWM输出函数接口:

初始化配置,调用函数接口,直接就输出PWM波形了:

输出PWM波形:

说明:

本例使用的是STM32标准外设库,如果要深入理解其中原理,还是建议使用标准外设库。

当然,如果想要快速使用PWM这个功能,不想理解其原理,可以直接使用STM32CubeMX配置生成代码:

配置注意事项

想要更加精确控制,并更加满足应用层的需求,就需要自己一步一步深入了解原理。

下面说几点常见的问题吧。

1.引脚映射

如果你使用的引脚需要映射,就需要配置对应的参数。

比如:STM32F1使用PB11(需要查看数据手册):

需要增加对应的“映射”代码:

2.频率和占空比精度

如果使用32位定时器的话,频率范围更宽、精度也可以达到更高。比如:频率:0.01Hz、 占空比0.01%等。

如果是16位的话,其中的参数都不能超过16位(65535):

具体可根据自己情况进行配置,比如PWM(定时器)计数时钟、分频值等。

实际应用代码,建议增加各个参数的判断,以防越界(这里为了方便理解,就写的比较简单)。

3.更多STM32都有硬件PWM输出功能,但不同的系列,其配置可能略有一些差异,简单参考官方例程以及手册。

现在大部分单片机都自带有硬件PWM输出功能,硬件的好处就是不用CPU干预。如果没有,可以尝试上面说的定时器中断的方式。


推荐阅读

史海拾趣

Everbuild公司的发展小趣事

Everbuild公司成立于2005年,创始人李明是一位对电子技术充满热情的年轻人。在创业初期,公司只有几个员工和一间狭小的办公室。李明带领团队日夜兼程地研发电子元器件,但由于资金短缺和市场竞争激烈,产品销量并不理想。然而,他们并没有放弃,通过不断的技术创新和成本控制,终于在一年后推出了一款具有竞争力的电源管理芯片,赢得了市场的认可。

永丰盈(CST)公司的发展小趣事

在稳步发展国内市场的同时,CST积极拓展国际市场。公司建立了分布世界各地的销售渠道,与多家国际知名企业建立了长期稳定的合作关系。通过不断的市场拓展和品牌建设,CST在国际市场上树立了良好的企业形象和品牌形象。

BAE Systems公司的发展小趣事

电子行业是一个充满竞争和挑战的领域。面对不断变化的市场环境和客户需求,BAE Systems公司不断调整自身的战略和业务结构。公司注重市场调研和客户需求分析,根据市场变化及时调整产品线和市场策略。同时,公司也加强了对内部管理和流程的优化,提高了运营效率和成本控制能力。这些举措使得公司能够在激烈的市场竞争中保持领先地位,实现稳健发展。

蓝箭(BLUE ROCKET)公司的发展小趣事

为了提高产品质量和客户满意度,蓝箭电子从1997年开始通过ISO9001质量管理体系认证。随后,公司还通过了ISO14001环境管理体系认证、ISO/TS16949汽车行业质量管理体系标准认证以及OHSAS18001认证。这些认证不仅提升了公司的管理水平,也增强了客户对公司的信任。

C&K Components公司的发展小趣事

进入60年代,随着计算机和电子行业的迅猛发展,C&K敏锐地捕捉到了微型开关市场的巨大潜力。公司果断进行业务重组,将重心转向计算机和电子行业的微型开关生产。这一转型不仅使C&K在技术上取得了重大突破,也使其在市场上获得了更多的机会。凭借对客户需求的深入理解和优质服务的提供,C&K迅速赢得了客户的信赖,并逐渐成为行业内的佼佼者。

Aavid Niagra公司的发展小趣事

在快速发展的同时,Aavid Niagra公司始终关注企业社会责任和可持续发展。公司积极参与环保事业,推广绿色生产和消费理念。同时,公司还注重员工培训和福利保障,为员工创造一个良好的工作环境和发展空间。这些举措不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实的基础。


这些故事框架主要围绕公司的初创、技术创新、全球化战略、行业变革应对以及企业社会责任等关键节点进行构建。您可以根据Aavid Niagra公司的实际情况和公开资料,对每个故事进行具体化和个性化的描述,以确保故事的准确性和可信度。

问答坊 | AI 解惑

SIM卡座PCB封装(抽屉式和推拉式)

SIM卡座PCB封装(抽屉式和推拉式)…

查看全部问答>

关于LED电源驱动芯片

大家懂电源的朋友可以关心一下的,现最好的驱动电源使用哪种芯片,推荐一下!…

查看全部问答>

GPRS MODEM 电路原理图.

GPRS MODEM 电路原理图.…

查看全部问答>

有害气体环境中的使用

本人 DIY各类数字湿度传感器在有害气体环境中的使用,其使用和寿命如何,对sh21的性能还无数据…

查看全部问答>

NorFlash应用问题(39VF1601型号)

1)NorFlash可供使用的地址空间应该从0x0000开始吧。那么为什么在手册中在说明ID读取时,如下:manufacturer\'s ID   0000H(address)   00BFH(data) ; Device ID   0001H(address)  2782H(data) 。感到不 ...…

查看全部问答>

我的6410裸奔和使用wince6.0哪个难度大?

我的系统主要是对来自camera接口的数据进行图像处理,并通过USB OTG口(作为device使用)上传给PC机。不需要运行其它进程。 硬件选用s3c6410。经过在s3c2442的PDA上跑图像处理测试代码,时间比较紧张,主要瓶颈在存储器访问上。因此我们打算给6410 ...…

查看全部问答>

单片机驱动H桥电路。。。。知者请 进!

我想 直接用单片机控制H桥电路,不 知道可不可以?…

查看全部问答>

各位达人,请教一个lwip的消息的类型的问题?

enum tcpip_msg_type { #if LWIP_NETCONN   TCPIP_MSG_API, #endif /* LWIP_NETCONN */   TCPIP_MSG_INPKT, #if LWIP_NETIF_API   TCPIP_MSG_NETIFAPI, #endif /* LWIP_NETIF_API */   TCPIP_MSG_ ...…

查看全部问答>

IAR4.2能修改缩进吗?

最近用IAR4.2开发ST,发现它默认的缩进只有两个空格,像 if(a) { ? ?b; } 不知道能不能修改成默认有更多空格,比如四个,像 if(a) { ? ? ? ? b; } 求教!…

查看全部问答>