使用STM32输出PWM波形

1、使用资料:野火开发板资料
《零死角玩转STM32》

2、PWM模式介绍
脉宽调制(PWM)基本原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率 .
脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
主函数

int main(void)
{/* led 端口配置 */ LED_GPIO_Config();/* 定时器初始化 */GENERAL_TIM_Init();while(1){      }

调用

void GENERAL_TIM_Init(void)
{GENERAL_TIM_GPIO_Config();GENERAL_TIM_Mode_Config();
}

3、具体步骤
1)将整个工程编辑运行
2)选择设置,打开,并更改部分设置,配置为软件仿真模式。

3)打开调试,并将波形输出



单机运行代码,若没有波形显示,可以通过鼠标的滚轮查看,或者点击Zoom(In(放大)Out(缩小))

用STM32F103的DAC输出正弦波

1)输出一个周期2khz的正弦波(循环)。此波形驱动作用至蜂鸣器或喇叭,会呈现一个“滴…”的单音;

1、使用资料(上文下载的野火资料)
2、DAC简介
DAC 为数字/模拟转换模块,作用就是把输入的数字编码,转换成对应的模拟电压输出,它的功能与 ADC 相反。在常见的数字信号系统中,大部分传感器信号被化成电压信号,而 ADC 把电压模拟信号转换成易于计算机存储、处理的数字编码,由计算机处理完成后,再由 DAC 输出电压模拟信号,该电压模拟信号常常用来驱动某些执行器件,使人类易于感知。如音频信号的采集及还原就是这样一个过程。
STM32 具有片上 DAC 外设,它的分辨率可配置为 8 位或 12 位的数字输入信号,具有
两个 DAC 输出通道,这两个通道互不影响,每个通道都可以使用 DMA 功能,都具有出错
检测能力,可外部触发
功能框图

正弦波频率计算

具体介绍可以查看《零死角玩转STM32》

3、找到需要的工程文件,第38个DAC_输出正弦波。

1)打开工程
2)使用matlab,更改bsp_dac.c文件中波形数据数值。
找到matlab函数,将matlab生成的.c文件找到。


%用于产生正弦数据表,输出到文件dac_sinWave.c 文件中,复制到c语言数组即可n = 2*pi/3600 : 2*pi/3600 : 2*pi      %分成3600等份a = sin(n)+1;                     %求取sin函数值并向上平移一个单位,消除负数值
a = a * 3.3/2;                    %调整幅值,使范围限制为0~3.3
r = a* (2.^12) /3.3               %求取dac数值,12位dac LSB = 3.3/2.^12
r = uint16(r);                     %把double型数据转化成16位整型数据 for i = 1:32
if r(i) > 4095                      %限制数据最大不超过4095r(i) = 4095
end
end dlmwrite('dac_sinWave.c',r);      %把数据写入到文件,方便添加到stm32工程中
plot(n,r,'.')                     %把这些点画出来


3)更改波形点数


4)将工程运行,生成.hex文件,拷贝到芯片中,通过PA4,PA5端口,用示波器观察输出。

2)将一段数字音频歌曲数据转换为模拟音频波形输出(循环)。

1、下载一首歌曲,并下载nodepad++、Ultraedit、Adobe Audition。
2、参考资料

  • 使用STM32微控制器系列中的DAC生成音频和波形
  • STM32F103使用TIM DMA DAC实现播放WAV音乐
    3、用Adobe Audition打开自己想要截取的文件

    4、选择截取部分,右击鼠标

    更改采样类型,格式

    5、用Ultraedit打开wav文件,并将所有右键选择用16进制复制所选视图到记事本中。

6、用Ultraedit打开记事本,右键选择范围,保存

7、用notepad++打开上面保存文件,编辑–列块编辑–插入文本 ,生成如下文件。

8、将生成的代码放到上面的DAC工程中。

9、编辑,运行,将工程生成.hex文件,拷贝到芯片中,通过示波器观察输出。

STM32的PWM与DAC输出波形相关推荐

  1. STM32的PWM和DAC练习中生成音频和波形

    文章目录 一.PWM 1.PMM相关知识 2.输出PWM波形 3.PWM输出波形实验 二. DAC 1.DAC相关知识 2.DAC条件波形输出 3.把一段数字音频歌曲数据转换为模拟音频波形输出 一.P ...

  2. 嵌入式实验(四):用STM32输出PWM波形/DAC功能完成波形输出

    0 实验目标 用STM32F103输出一路PWM波形,建议采用定时器方法.野火和网上大多数资源采用此方法,有完整源码.用示波器观察输出波形. 用STM32F103的DAC功能完成以下波形输出,用示波器 ...

  3. STM的PWM与DAC学习

    文章目录 任务要求 PWM应用 例程编写 DAC应用 例程编写 总结 任务要求 本人所用STM32为野火家F103指南者 烧录用具ST-LINK 代码编写为KILE5 音频软件为AU 用STM32F1 ...

  4. 菜鸟入门13,认识两个新朋友——PWM和DAC

    文章目录 前言 用STM32F103输出一路PWM波形,建议采用定时器方法.野火和网上大多数资源采用此方法,有完整源码.用示波器观察输出波形. 显示波形 用STM32F103的DAC功能完成以下波形输 ...

  5. 嵌入式开发练习(十五)PWM、DAC的使用

    如有错误,欢迎指正,谢谢! 目录 一.PWM 1.PWM简介 2.stm32的配置 3.演示效果 二.DAC 1.DAC简介 2.任务1-正弦波输出 3.任务2-音频输出 一.PWM 1.PWM简介 ...

  6. 嵌入式学习⑩——STM的PWM和DAC

    STM的PWM和DAC 目录 STM的PWM和DAC 一.STM32F103输出PWM 1.STM32F1 PWM介绍 2.源码示例 3.进行配置 二.STM32实现DAC输出 1.DAC的基本介绍 ...

  7. STM32 脉宽调制 (PWM):控制直流风扇的速度

    在之前的文章中,我们已经了解了使用 STM32 进行 ADC 转换.现在,我们将了解STM32 中的 PWM(脉冲宽度调制)以及如何使用 PWM 技术控制 LED 的亮度或直流风扇的速度. 我们知道有 ...

  8. 用STM32的内置DAC制作一个波形生成器(发生器)

    社团作业=_= 任务一:波形生成.1.使用STM32的DAC功能,生成0~10kHz的方波,频率精确到1%以内: 2.能够生成三角波.正弦波: 3.实现频率设置,可以实现一定步进数的调节,最高为100 ...

  9. 【转载】 stm32之PWM

    发现这位博主的博客被大量的转发,我也转载一篇,谁叫人家写的好呢. 原文地址:http://blog.sina.com.cn/s/blog_49cb42490100s6uh.html 脉冲宽度调制(PW ...

最新文章

  1. mysql存储加速_mysql存储过程加速
  2. 2015-4-20 BAV推广页面修改前后对比-安全网购
  3. 计算机教育日志,信息技术日志1
  4. 向日葵远程使用备忘录
  5. 【Elasticsearch】如何使用 Elasticsearch 6.2 搜索中文、日文和韩文文本 - 第 1 部分: 分析工具
  6. python二进制反码例题_python中的进制转换和原码,反码,补码
  7. 联想Y580黑苹果安装
  8. 编译工具链和交叉编译工具链简易说明
  9. mPush实战笔记5安装alloc服务
  10. 移动端h5原生分享到朋友圈、微博等
  11. 一种通过 ZoomEye 捕获全新 Docker 蜜罐的案例
  12. opta球员大数据预测胜负_大数据预测简介及使用流程
  13. 以阿里IoT开发物联网和应用平台
  14. java背单词页面_简易Web背单词软件 #01# 当前功能
  15. 基于python+OpenCV的车牌号码识别
  16. SpringMVC05:AJAX的使用
  17. POL8901 LVDS转MIPI DSI 支持旋转图像处理芯片
  18. cvte面试查漏补缺
  19. 极简的wrk安装和使用教程
  20. isco 的六种模式(cisco 系统)

热门文章

  1. .NET Framework 概述
  2. 计算机文档软件,电脑文档软件
  3. 任何人都能看得懂的网络协议之 ARP
  4. 【Linux】计算机软硬件体系结构
  5. 用Qt实现计算器(实现了运算符优先级)
  6. 单机java_java实现单机版五子棋小游戏
  7. 踔厉奋发,笃行不怠!CASAIM 喜获2022年创新指标完成奖
  8. 狂风暴雨——风云突变篇:基于数据流层Namsara的ERP系统架构描述
  9. 从零开始编写minecraft光影包(6)天空绘制
  10. html无法展示swf,flexpaper无法预览swf文件_html/css_WEB-ITnose