完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前言
今天本菜鸟带大家认识两位对我们今后的学习很有帮助的两位朋友——PWM和DAC。 用STM32F103输出一路PWM波形,建议采用定时器方法。野火和网上大多数资源采用此方法,有完整源码。用示波器观察输出波形。 PWM是什么 PWM是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调制,简称脉宽调制。 它是利用微处理器的数字输出来对模拟电路进行控 制的一种非常有效的技术,其控制简单、灵活和动态响应好等优点而成 为电力电子技术最广泛应用的控制方式,其应用领域包括测量,通信, 功率控制与变换,电动机控制、伺服控制、调光、开关电源,甚至某些 音频放大器,因此学习PWM具有十分重要的现实意义。 其实我们也可以这样理解,PWM是一种对模拟信号电平进行数字编码 的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM 信号仍然是数字的,因为在给定的 任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被 断开的时候。只要带宽足够,任何模拟值都可以使用 PWM 进行编码。 脉宽调制(PWM)基本原理: 控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,即可改变逆变电路输出电压的大小,也可改变输出频率。 PWM表的图像 可以看到,这个PWM 表记录了呼吸特性曲线,在本实验中,PWM 表的数据将会被赋值到定时器的CCRx 比较寄存器,从而控制输出占空比呈呼吸特性曲线变化的PWM波。 显示波形 首先从野火指南者的例程中找到TIM——单色呼吸灯,打开工程, 主函数如下 #include “stm32f10x.h” #include “。/breathinglight/bsp_breathing.h”int main(void){ TIMx_Breathing_Init(); while(1) { } } 编译运行,用u***连接指南者与上位机 并配置如下 点击调试 找到 图标 点击setup 点击全速运行并点击 波形显示如下 TIM_Config函数体 在配置函数体之前,先了解一下stm32的占空比以及频率是如何计算的 ①频率:我们使用的APB1时钟源是72MHz的,在此我们不做分频,通过配置相关的参数来设置输入频率,计算方法:输入频率=APB1时钟/(预分频系数+1)=72000000Hz/360=200000Hz ②TIM_TImeBaseStructure.TIM_Period参数决定了输出PWM波形的频率,输出PWM波形的频率=定时器的输入频率/TIM_TImeBaseStructure.TIM_Period,本例程20000Hz/100=200Hz,即5ms一个周期 ③配置占空比:占空比=配置占空比的值/ TIM_TImeBaseStructure.TIM_Period,以此计算来确定占空比,本案例的占空比为50/100=50% 用示波器观察PB5 我们可以发现,它的波形在规律变化 编译并下载本程序到开发板,给开发板上电复位,可看到LED 灯显示呼吸效果。 用STM32F103的DAC功能完成以下波形输出,用示波器观察波形,并用蜂鸣器或手机耳机收听输出声音效果、感受歌曲的音质差异。 DAC 简介 DAC 为数字/模拟转换模块,故名思议,它的作用就是把输入的数字编码,转换成对应的模拟电压输出,它的功能与ADC 相反。在常见的数字信号系统中,大部分传感器信号被化成电压信号,而ADC 把电压模拟信号转换成易于计算机存储、处理的数字编码,由计算机处理完成后,再由DAC 输出电压模拟信号,该电压模拟信号常常用来驱动某些执行器件,使人类易于感知。如音频信号的采集及还原就是这样一个过程。STM32 具有片上DAC 外设,它的分辨率可配置为8 位或12 位的数字输入信号,具有两个DAC 输出通道,这两个通道互不影响,每个通道都可以使用DMA 功能,都具有出错检测能力,可外部触发。 功能框图 1)输出一个周期2khz的正弦波(循环)。此波形驱动作用至蜂鸣器或喇叭,会呈现一个“滴…”的单音; 打开野火的DAC输出正弦波例程 根据手册中的提示 找到bsp_dac.c文件,因为要输出2khz正弦波,把定时周期从(20-1)改为(1125-1) 编译运行, 输出了2khz的正弦波 使用蜂鸣器连接PA4可以听到很长的“滴”的声音 2)将一段数字音频歌曲数据转换为模拟音频波形输出(循环)。 首先用AU打开一段自己喜欢的音乐 选择5-10s 右键储存选区为 用Ultraedit打开 用Ctrl+A全选,鼠标右键,点击十六进制复制所选视图, 复制完成后新建一个文件,粘贴进去 然后右键-》选择范围 设置行号,结果如下 总结 以上就是我们新认识的两位朋友——PWM和DAC啦。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1754 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1613 浏览 1 评论
1053 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1667 浏览 2 评论
1931浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
718浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
562浏览 3评论
587浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
546浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 16:14 , Processed in 0.746538 second(s), Total 46, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号