目录

  • 一、STM32F103输出一路PWM波形
  • 二、STM32F103的DAC功能输出
  • 参考链接

一、STM32F103输出一路PWM波形

STM32F1除了基本定时器TIM6和TIM7,其他定时器都可以产生PWM输出 。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出 。而通用定时器也能同时产生多达 4路的 PWM 输出,这些在定时器中断 章节中已经介绍过。PWM的输出其实就是对外输出脉宽可调(即占空比调节)的方波信号 ,信号频率是由自动重装寄存器 ARR 的值决定,占空比由比较寄存器 CCR 的值决定。

1.用STM32F103输出一路PWM波形,采用定时器方法。用示波器观察输出波形

野火和网上大多数资源采用此方法,有完整源码。

2.野火自带的PWM输出波形工程文件

3.野火自带的这个工程相关要求都能够符合,所以我们直接编译即可,不需要进行修改


4.输出效果、可得到相应的一个矩形脉冲波形


二、STM32F103的DAC功能输出

(一)输出一个周期2khz的正弦波
1.输出一个周期2khz的正弦波(循环)。此波形驱动作用至蜂鸣器或喇叭,会呈现一个“滴…”的单音;
2.可以通过工程里的正弦波点数和定时器配置生成特定频率的正弦波,这里实验要求中我们需要输出一个周期为2kHz的正弦波,通过下面计算公式:

经计算需要3600个采样点
3.野火配套资料里的 38-DAC—输出正弦波 工程文件,将其打开,找到如下文件,用matlab打开:

修改成如下

4.会生成3600个取样点:

5.这些点会自动保存到以下c文件中


6.打开 DAC-输出正弦波 的工程keil文件

7.将上面全部数据粘贴到bsp_ dac.c中的uint16_t Sine12bit 数组中

编译输出hex文件


8.连接开发板烧录,观察输出波形

STM32 的 DAC 外设有固定的输出通道,分别为 PA4 和 PA5


9.加上蜂鸣器,黑线接地

声音较小,需要仔细听

将输出引接到自带的蜂鸣器的输入A8,自带蜂鸣器的声音要大些


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

提示:首先用音频制作工具制作一段数字化的2khz正弦波wav文件、转换一首你喜欢的歌曲片段(或者自己唱录一句,如“我还是从前那个少年miya”)为wav文件。制作时须指定采样频率、量化位数和通道数,以及时间长度。MCU资源有限,建议采样8khz,量化16bit,单通道,时长仅仅5~10秒。音频wav数据可以用类似汉字字模的保存方式,直接copy到Keil代码中数组中,不必使用SD卡上的wav文件(野火开发板是读取SD卡上的wav文件)。

1.下载一首歌曲,用Adobe Audition CS6打开

2.用鼠标拖动截取其中的一小段(几秒钟即可),然后点击存储选区为

3.按如下进行相关的设置,点击确定即可完成截取,生成一个wav格式的文件

4.用UltraEdit软件打开这个wav文件


5.CTRL+A 鼠标右键 选择 十六进制复制 选定视图,新建文件,粘贴

6.CTRL+A 鼠标右键 选择范围 输入起始的行号和列号,确定就选中了整个需要的内容




选择到了我们要用到的内容,将其复制下来

7.打开 notepad++ 软件,将以上复制的内容粘贴进去,然后 alt+c ,在其中插入 ,0x 生成如下文件:

然后删除不需要的尾行将该文本复制下来
8.将数据复制粘贴到bsp_ dac.c中的uint16_t Sine12bit 数组中
编译


烧录到板子,用示波器观察

参考链接

https://www.cnblogs.com/zhj868/p/12640717.html

https://blog.csdn.net/liqiang420795936/article/details/108216511

脉冲宽度调制(PWM)和DAC转换练习相关推荐

  1. CPS攻击案例(一)——基于脉冲宽度调制PWM的无人机攻击

    本文系原创,转载请说明出处 Please Subscribe Wechat Official Account:信安科研人,获取更多的原创安全资讯 原论文链接:sec22-dayanikli.pdf ( ...

  2. STM32F103C8T6脉冲宽度调制(PWM)

    关于STM32F103C8T6工程文件自己免积分下载https://download.csdn.net/download/weixin_45488643/12522971这个仅仅是一个核心工程文件,只 ...

  3. 脉冲宽度调制PWM的原理及应用

    目录 一.什么是PWM信号 二.PWM信号是如何产生的 三.PWM有什么优点? 四.PWM的应用 一.什么是PWM信号 PWM,英文全称Pulse Width Modulation,是脉冲宽度调制的缩 ...

  4. 脉冲宽度调制pdm_脉冲宽度调制(PWM)技术原理

    二.正弦波脉宽调制 (sPwM ) 1 . sPwM 的概念 工程实际中应用最多的是正弦 PwM 法 ( 简称 sPwM) , 它是在每半 个周期内输出若干个宽窄不同的矩形脉冲波, 每一矩形波的面积近 ...

  5. STM32的脉冲宽度调制(PWM)

    文章目录 32的PWM资源 PWM输出原理 PWM相关寄存器 捕获/比较模式寄存器(TIMx_CCMR1/2) 捕获/比较使能寄存器(TIMx_CCER) 捕获/比较寄存器(TIMx_CCR1~4) ...

  6. c语言延时变频1kHz和2kHz,用C语言实现:采用中断方式,P1.0输出脉冲宽度调制(PWM)信号,即脉冲频率为2kHz,占空比为...

    满意答案 qaz8140036 2014.11.04 采纳率:42%    等级:7 已帮助:309人 /*用keil3与proteus7.4联调,自己下载后开启联调设置,在proteus中画个最小单 ...

  7. PWM脉冲宽度调制——它是什么?

    脉冲宽度调制 (PWM) 的良好定义就在名称本身.为了更好地理解 PWM 是什么,让我们首先看一些基本术语. 微控制器是基于二进制信号的智能数字元件.二进制信号的最佳表示是方波(高低电平).下图解释了 ...

  8. STM的PWM与DAC学习

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

  9. 脉冲宽度调制pdm_STM32第七章-脉冲宽度调制

    先说在开头啊,我们学习定时器总感觉它是很难的,这里我就不说他的编程难度,而是对于它的理解难度.学习定时器你就必须了解他的来龙去脉. 比如说你现在要使用一个定时器,那么先要决定你要用哪一个定时器,是高级 ...

最新文章

  1. PHP 规范之编程规范
  2. python 读取csv_python 读取csv 文件
  3. gradle 转 maven
  4. zabbix入门之定义触发器
  5. Javascript学习总结 - JS基础系列三
  6. Hibernate处理MySQL的时间
  7. 概要设计说明书任务分配
  8. Android中字体文件位置
  9. Windows 7 Sp1 x64 无法安装英文语言包(已解决)
  10. c1侧方停车技巧图解解析停车要点
  11. 切蛋糕java题,【算法•日更•第六期】头脑风暴:洛谷P1528 切蛋糕题解
  12. ERP环境下内部控制系统建立与实施要点
  13. 5G时代带动陶瓷PCB成长——GPS陶瓷天线调试方法 (一)
  14. 使用PXI设备做IC的开短路测试
  15. 计算机员工工资管理系统源代码,C++员工工资管理系统源代码
  16. 【毕业设计1】基于单片机的智能灌溉系统 - 物联网 嵌入式 stm32 c51
  17. 41、Springboot 文件上传 采用Base64方式
  18. 云计算助力传统安防智慧升级
  19. 将数学公式转换成c语言表达式,习题参考答案
  20. P2242公路维修问题题解

热门文章

  1. 实现谷歌浏览器打开海康视频等OCX控件
  2. 【大数据】Hadoop (二) HDFS
  3. 模型量化论文阅读#1----综述:A Survey of Quantization Methods for Efficient Neural Network Inference
  4. 网络计算机应急处理,国家计算机网络应急技术处理协调中心-计算机网络安全应急处理.ppt...
  5. Java虚拟机理解-内存管理
  6. 区块链行业领袖汇聚一堂,共同畅谈IEO
  7. rss阅读器保存html文件,4款在线RSS阅读器使用体验
  8. uniapp离线打包SDK
  9. 使用 Qt for Android 获取并利用手机传感器数据(上篇)开发环境省心搭建
  10. Database 'xxxx' is being recovered. Waiting until recovery is finished.