STM32的PWM和DAC练习
文章目录
用STM32F103输出一路PWM波形
PWM简介
PWM是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调 制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控 制的一种非常有效的技术,其控制简单、灵活和动态响应好等优点而成 为电力电子技术最广泛应用的控制方式,其应用领域包括测量,通信, 功率控制与变换,电动机控制、伺服控制、调光、开关电源,甚至某些 音频放大器,因此学习PWM具有十分重要的现实意义。 其实我们也可以这样理解,PWM是一种对模拟信号电平进行数字编码 的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个 具体模拟信号的电平进行编码。PWM 信号仍然是数字的,因为在给定的 任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压 或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去 的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被 断开的时候。只要带宽足够,任何模拟值都可以使用 PWM 进行编码。
代码实现
1.使用CubeMX创建一个新的项目,并选择芯片类型
2.配置管脚
3.对定时器的比较值、重载值、分频进行设置,这里先只对比较值与重载值设定。
4.生成keil 5的代码
6.main函数中添加如下代码
7.设置调试参数
8.重新编译开始调试
9.设置观察引脚,点击添加引脚的标志输入PORTA.6,其中A与6是你使用的管脚,比如我这里用的是PA6。
10.仿真波形结果
用STM32F103的DAC功能输出一个周期2khz的正弦波(循环)
1.打开Adobe Audition新建一个文件
2.设定文件名,设定声道为单声道,位深度为16位,点击确定
3生成基本音色
4,设置效果(默认就行)
4.保存文件
5.用urlEdit打开这个文件,并新建一个空白文件,右键十六进制复制所选视图并粘贴到空白文件中
6.在空白文件中右键选择复制范围
7.将文件复制粘贴到notepad++上,并对其进行列块编辑
完成后如图
8.将生成的代码放入到keil中,使用野火指南者代码 DAC输出正弦波。
9.示波器波形
用STM32F103的DAC功能将一段数字音频歌曲数据转换为模拟音频波形输出(循环)
步骤与上述相同
adobe图像
示波器图像
参考文档
STM32PWM实验
Keil软件仿真看不到波形