STM32—NB-IOT蜂鸣器定时器控制PWM放歌

实现蜂鸣器播放音乐

PWM(脉冲宽度调制)

脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。

多数负载(无论是电感性负载还是电容性负载)需要的调制频率高于10Hz,通常调制频率为1kHz到200kHz之间。

许多微控制器内部都包含有PWM控制器。例如,Microchip公司的PIC16C67内含两个PWM控制器,每一个都可以选择接通时间和周期。占空比是接通时间与周期之比;调制频率为周期的倒数。执行PWM操作之前,这种微处理器要求在软件中完成以下工作:

1、设置提供调制方波的片上定时器/计数器的周期

2、 在PWM控制寄存器中设置接通时间

3、设置PWM输出的方向,这个输出是一个通用I/O管脚

4、启动定时器

5、使能PWM控制器

如今几乎所有市售的单片机都有PWM模块功能,若没有(如早期的8051),也可以利用定时器及GPIO口来实现。更为一般的PWM模块控制流程为(笔者使用过TI的2000系列,AVR的Mega系列,TI的LM系列):

1、使能相关的模块(PWM模块以及对应管脚的GPIO模块)。

2、配置PWM模块的功能,具体有:

①:设置PWM定时器周期,该参数决定PWM波形的频率。

②:设置PWM定时器比较值

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值