PWM DAC原理

PWM本质上是周期一定,高低电平占空比可调的方波


函数表示:

展开傅里叶级数:

N:PWM波一周期中高电平的计数脉冲个数,即STM32ARR-1的值
n:PWM波一周期中高电平的计数脉冲个数,即STM32CCRx的值
VH和VL分别是PWM波的高低电平电压值,k为谐波次数,t为时间

将②式中的谐波过滤掉,则可以得到从PWM波到电压输出DAC的转换:PWM波解调(滤波器)
②式变成:

若VL=0,则f(t)=[n/N Vh];

分辨率:log2(N)

PWM DAC硬件


二阶RC滤波截止频率计算公式:f=1/2 πRC

实验程序

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
#include "adc.h"
#include "key.h"
#include "pwmdac.h"int main(void)
{u16 adcx;float temp;u8 t=0;u16 pwmval =0;u8 key;NVI_PriorityGroupConfig(NVIC_PriorityGroup_2);delay_init(168);uart_init(115200);LED_Init();LCD_Init();Adc_Init();KEY_Init();//初始化TIM9_CH2_PWM_Init(255,0);//TIM4 PWM 初始化,Fpwm=168M/256POINT_COLOR=RED;LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");LCD_ShowString(30,70,200,16,16,"PWM DAC TEST");    LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");LCD_ShowString(30,110,200,16,16,"2014/5/6");    LCD_ShowString(30,130,200,16,16,"WK_UP:+  KEY1:-");  POINT_COLOR=BLUE;      LCD_ShowString(30,150,200,16,16,"DAC VAL:");       LCD_ShowString(30,170,200,16,16,"DAC VOL:0.000V");        LCD_ShowString(30,190,200,16,16,"ADC VOL:0.000V");TIM_SetCompare2(TIM9,pwmval); //初始值
while(1){t++;key=KEY_Scan(0);              if(key==4){      if(pwmval<250)pwmval+=10;TIM_SetCompare2(TIM9,pwmval);    //输出}else if(key==2)  {if(pwmval>10)pwmval-=10;else pwmval=0;TIM_SetCompare2(TIM9,pwmval);   //输出}    if(t==10||key==2||key==4)        {     adcx=TIM_GetCapture2(TIM9);;LCD_ShowxNum(94,150,adcx,3,16,0);        //DAC寄存器值temp=(float)adcx*(3.3/256);;                //得到DAC电压值adcx=temp;LCD_ShowxNum(94,170,temp,1,16,0);        //显示电压值整数部分temp-=adcx;temp*=1000;LCD_ShowxNum(110,170,temp,3,16,0x80);    //小数部分adcx=Get_Adc_Average(ADC_Channel_5,20); //得到ADC转换值temp=(float)adcx*(3.3/4096);                //得到ADC电压值adcx=temp;LCD_ShowxNum(94,190,temp,1,16,0);     //显示电压值整数部分temp-=adcx;temp*=1000;LCD_ShowxNum(110,190,temp,3,16,0x80);   //显示电压值小数部分t=0;LED0=!LED0;       }        delay_ms(10); }
}

PWM DAC应用试验相关推荐

  1. 用PWM实现DAC功能

    现在单片机型号很多,但是内部拥有12位DAC且性价比较高的芯片恨少,导致在芯片选型时,捉襟见肘.没办法,就想着用PWM实现DAC的功能,这只是初步理论,还没有实践过,先贴出来,后续实现再看效果如何吧. ...

  2. 正点原子:STM32F103(战舰)、STM32F407(探索者)、STM32F103(MINI)原理图和PCB

    目录 1.STM32F103(战舰) 2.STM32F407(探索者) 3.STM32F103(MINI) 为各位嵌入式好朋友分享三个重磅资源,正点原子三件套,可直接打样使用~ 1.STM32F103 ...

  3. 咦?智能颈部按摩仪还能语音播报,快搞起来!

    一.档位切换实现 1.档位实现原理 按摩仪共设置15个档位,可以控制按摩的力度,通过BOOST升压电路实现. 通过P8口产生PWM波,调节PWM输出的正占空比来实现升压,详细的硬件原理可参考硬件部分关 ...

  4. 基于WT588F02B语音芯片的智能语音感应洗手液器设计方案

    随着人类文明的进步,人们对健康卫生越来越重视,特别是在当前新冠疫情的情景下,出门戴口罩,回家消毒洗手尤为重要,其中洗手已经成为人们日常生活中必不可少的一个环节.这就诞生了很多与洗手有关的产品,这里主要 ...

  5. STM32F4开发板硬件简介

    参考:STM32F4开发板硬件平台简介 作者:SKY丶丿平才 发布时间: 2021-03-20 10:44:41 网址:https://blog.csdn.net/weixin_48264057/ar ...

  6. 语音芯片排行榜,为何唯创知音WT588F语音芯片如此受欢迎

    随着智能家居.智能玩具.智能机器人等领域的快速发展,语音芯片逐渐成为智能硬件的重要组成部分.在众多语音芯片中,唯创知音WT588F语音芯片备受关注,成为市场上备受欢迎的产品.那么,WT588F语音芯片 ...

  7. ARM Mbed在线IDE编程意法半导体(ST)开发板

    硬件 软件 介绍 STM32F407发现板不直接支持MBED在线IDE. 但是该板上的MCU也用于另一块官方MBED板上(Seeed Studio Arch Max v1.1). 因此,可以通过将发现 ...

  8. STM32F4开发板硬件平台简介

    文章目录 前言 一.ALIENTEK 探索者 STM32F4 开发板资源初探 1.开发板资源图 2.ALIENTEK 探索者 STM32F4 开发板板载资源汇总 3.ALIENTEK 探索者 STM3 ...

  9. STM32F4 | 最小系统设计 | 开发板资源介绍 | 开发环境搭建 | 程序下载

    文章目录 一.STM32最小系统设计 1.什么叫MCU最小系统? 2.STM32最小系统 2.1 供电电路(电源部分) 2.2 复位电路 2.3 时钟电路 2.4 BOOT启动模式选择 2.5 下载电 ...

最新文章

  1. SAP freelancer接SAP项目应有底线思维
  2. 为啥led灯用一年后暗了很多_嫌原车的卤素“蜡烛灯”太暗,想换掉,该选氙气灯还是LED灯?...
  3. python3 爬虫--Chrome以及 Chromedriver安装配置
  4. C语言 回调函数 produce(arr,len,getRand)
  5. 可以闭眼入的O'REILLY机器学习神书出新版了!
  6. android 格式化分区,Android FAT分区格式化
  7. linux 运行段错误,在linux下代码运行出现段错误,求大神
  8. 为什么坚持一件事总是那么难,而且有时候总是三分钟热度?
  9. SQL_delete删除数据
  10. 从多路搜索树到 B-树
  11. [原创]UUID的介绍和使用
  12. Android studio配置Google play服务
  13. php 执行bat文件,bat执行PHP文件
  14. 计算机模式识别科学家年薪,年薪可达80万,学人工智能要去这些学校
  15. 网络广告投放基础,广告
  16. Mac系统升级Git
  17. 项目管理过程中六种冲突解决方法
  18. python3ide安卓版官网下载_Pydroid3官方版-Pydroid3最新版下载v4.01 - 7230手游网
  19. 【蓝桥杯】【Python】次数差
  20. rangeOfString 与containsString

热门文章

  1. 大雁魔三阶[大烟头]
  2. 英语特别差能学java吗_英语特别差能学java吗
  3. 七大原则——单一职责原则
  4. 【递推】任何一个自然数的立方都可以写成一串连续奇数之和问题 C
  5. uni-app开发常用点
  6. 【敬伟ps教程】修复工具
  7. 达梦数据库DM8之导入导出参数详解
  8. 使用Prometheus与Grafana追踪SpringBoot程序
  9. 星星之火OIer:Post Office题解
  10. mysql标志位_数据库状态标识位flag设计