STM32的PWM与DAC输出波形
使用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输出波形相关推荐
- STM32的PWM和DAC练习中生成音频和波形
文章目录 一.PWM 1.PMM相关知识 2.输出PWM波形 3.PWM输出波形实验 二. DAC 1.DAC相关知识 2.DAC条件波形输出 3.把一段数字音频歌曲数据转换为模拟音频波形输出 一.P ...
- 嵌入式实验(四):用STM32输出PWM波形/DAC功能完成波形输出
0 实验目标 用STM32F103输出一路PWM波形,建议采用定时器方法.野火和网上大多数资源采用此方法,有完整源码.用示波器观察输出波形. 用STM32F103的DAC功能完成以下波形输出,用示波器 ...
- STM的PWM与DAC学习
文章目录 任务要求 PWM应用 例程编写 DAC应用 例程编写 总结 任务要求 本人所用STM32为野火家F103指南者 烧录用具ST-LINK 代码编写为KILE5 音频软件为AU 用STM32F1 ...
- 菜鸟入门13,认识两个新朋友——PWM和DAC
文章目录 前言 用STM32F103输出一路PWM波形,建议采用定时器方法.野火和网上大多数资源采用此方法,有完整源码.用示波器观察输出波形. 显示波形 用STM32F103的DAC功能完成以下波形输 ...
- 嵌入式开发练习(十五)PWM、DAC的使用
如有错误,欢迎指正,谢谢! 目录 一.PWM 1.PWM简介 2.stm32的配置 3.演示效果 二.DAC 1.DAC简介 2.任务1-正弦波输出 3.任务2-音频输出 一.PWM 1.PWM简介 ...
- 嵌入式学习⑩——STM的PWM和DAC
STM的PWM和DAC 目录 STM的PWM和DAC 一.STM32F103输出PWM 1.STM32F1 PWM介绍 2.源码示例 3.进行配置 二.STM32实现DAC输出 1.DAC的基本介绍 ...
- STM32 脉宽调制 (PWM):控制直流风扇的速度
在之前的文章中,我们已经了解了使用 STM32 进行 ADC 转换.现在,我们将了解STM32 中的 PWM(脉冲宽度调制)以及如何使用 PWM 技术控制 LED 的亮度或直流风扇的速度. 我们知道有 ...
- 用STM32的内置DAC制作一个波形生成器(发生器)
社团作业=_= 任务一:波形生成.1.使用STM32的DAC功能,生成0~10kHz的方波,频率精确到1%以内: 2.能够生成三角波.正弦波: 3.实现频率设置,可以实现一定步进数的调节,最高为100 ...
- 【转载】 stm32之PWM
发现这位博主的博客被大量的转发,我也转载一篇,谁叫人家写的好呢. 原文地址:http://blog.sina.com.cn/s/blog_49cb42490100s6uh.html 脉冲宽度调制(PW ...
最新文章
- mysql存储加速_mysql存储过程加速
- 2015-4-20 BAV推广页面修改前后对比-安全网购
- 计算机教育日志,信息技术日志1
- 向日葵远程使用备忘录
- 【Elasticsearch】如何使用 Elasticsearch 6.2 搜索中文、日文和韩文文本 - 第 1 部分: 分析工具
- python二进制反码例题_python中的进制转换和原码,反码,补码
- 联想Y580黑苹果安装
- 编译工具链和交叉编译工具链简易说明
- mPush实战笔记5安装alloc服务
- 移动端h5原生分享到朋友圈、微博等
- 一种通过 ZoomEye 捕获全新 Docker 蜜罐的案例
- opta球员大数据预测胜负_大数据预测简介及使用流程
- 以阿里IoT开发物联网和应用平台
- java背单词页面_简易Web背单词软件 #01# 当前功能
- 基于python+OpenCV的车牌号码识别
- SpringMVC05:AJAX的使用
- POL8901 LVDS转MIPI DSI 支持旋转图像处理芯片
- cvte面试查漏补缺
- 极简的wrk安装和使用教程
- isco 的六种模式(cisco 系统)
热门文章
- .NET Framework 概述
- 计算机文档软件,电脑文档软件
- 任何人都能看得懂的网络协议之 ARP
- 【Linux】计算机软硬件体系结构
- 用Qt实现计算器(实现了运算符优先级)
- 单机java_java实现单机版五子棋小游戏
- 踔厉奋发,笃行不怠!CASAIM 喜获2022年创新指标完成奖
- 狂风暴雨——风云突变篇:基于数据流层Namsara的ERP系统架构描述
- 从零开始编写minecraft光影包(6)天空绘制
- html无法展示swf,flexpaper无法预览swf文件_html/css_WEB-ITnose