pwm与dac的区别:
PWM是脉冲宽度调制,也就是频率固定,占空比可变,信号就是方波,只有高低电平,相当于数字信号,而DAC是模拟输出,输出信号在一定程度上和一定范围内可以认为是连续可变的,但是PWM可以通过滤波器实现低精度的DAC功能
pwm实现dac的优点:
STM32很多型号是没有DAC的。通常情况下,采用专用的D/A芯片来实现,但是这样就会带来成本的增加。但是STM32所有的芯片都有PWM输出,并且PWM输出通道很多,资源丰富。因此,我们可以使用PWM+简单的RC滤波来实现DAC的输出从而节省成本。
实际电路的典型 PWM 波形,如图 :
高电平阶段:计数器当前值从0-CCRx阶段(总时间=CCRx*每两个计数之间的间隔时间);
低电平阶段:计数器当前值从CCRx-ARR-1阶段(总时间=(ARR-1-CCRx)每两个计数之间的间隔时间)。如果PWM内容如果不太懂,可以参考链接:【STM32】通用定时器的PWM输出(实例:PWM输出)。根据PWM的波形,可以用分段函数来进行表示:
其中:T 是单片机中计数脉冲的基本周期,也就是 STM32 定时器的计数