目录

  • 一、用STM32F103输出一路PWM波形
  • 1.打开文件
  • 2.配置
  • 3.结果
  • 二、输出2KHZ的正弦波
  • 1.构建一个周期为2KHZ的正弦波音频信号
  • 2.生成周期点
  • 3.运行代码修改
  • 4.结果
  • 三、数字音频数据转换为模拟音频波形输出
  • 1.音频截取
  • 2.生成周期点
  • 3.运行结果


一、用STM32F103输出一路PWM波形

1.打开文件

• 打开之前网盘下载的野火资料:

stm32cubemx pwm测量输入频率_开发板


• 打开,编译构建。

• 之后点击运行,选择分析窗口:

stm32cubemx pwm测量输入频率_右键_02

2.配置

• 第三步设置如下:

stm32cubemx pwm测量输入频率_正弦波_03


• 当第一步输完后回车在第二步选择Bit.

3.结果

• 之后若没有出现图像,点击ALL即可;波形图如下:

stm32cubemx pwm测量输入频率_右键_04

二、输出2KHZ的正弦波

所需软件:
• 音频编辑工具Audiotion
• UltraEdit
• notepad++
软件均可在官网下载,此处不累赘

1.构建一个周期为2KHZ的正弦波音频信号

• 打开音频编辑工具构建一个音频文件:

stm32cubemx pwm测量输入频率_开发板_05


• 选择如下:

stm32cubemx pwm测量输入频率_右键_06

• 点击效果->生成基本音色:

stm32cubemx pwm测量输入频率_开发板_07


• 确定形状为正弦,频率为2000:

stm32cubemx pwm测量输入频率_开发板_08


• 之后点击确定。

• 导出:

stm32cubemx pwm测量输入频率_正弦波_09


• 选择文件路径,确保生成文件为wav类型即可。

• 在界面左边选择所创建的文件,打开:

stm32cubemx pwm测量输入频率_右键_10


右图为所输出的正弦波。

2.生成周期点

• 使用软件UltraEdit打开所创建wav文件:

• CTRL+A全选,点击右键选择16进制复制所选视图:

stm32cubemx pwm测量输入频率_右键_11


• 粘贴到新创建的一个记事本:

stm32cubemx pwm测量输入频率_开发板_12


• 再次用UltraEdit打开记事本:

• 点击右键选择范围,设置选择:

stm32cubemx pwm测量输入频率_正弦波_13


CTRL+C复制即可。

• 新建一个记事本,粘贴:

stm32cubemx pwm测量输入频率_开发板_14

• 用nodepad++打开该记事本:

• 选择列块编辑:

stm32cubemx pwm测量输入频率_右键_15

• 第一列插入0x之后每列前面插入,0x最后一列后面加,:

stm32cubemx pwm测量输入频率_正弦波_16


• 完成之后全选复制。

3.运行代码修改

• 打开野火资料:

stm32cubemx pwm测量输入频率_正弦波_17


• 打开bsp_dac.c文件:

• 将复制的粘贴到const uint16_t Sine12bit[POINT_NUM] 函数下:

stm32cubemx pwm测量输入频率_开发板_18


• 如果出现如下问题:应修改上图中函数的周期点数:

stm32cubemx pwm测量输入频率_右键_19

• 此时如还存在以下问题:

stm32cubemx pwm测量输入频率_右键_20


• 是芯片内存不够可打开项目选项:

stm32cubemx pwm测量输入频率_右键_21


• 修改后,编译构建即可。

stm32cubemx pwm测量输入频率_正弦波_22

4.结果

• 将生成的HEX文件烧录进STM32开发板。
• 将开发板USB连接电脑或者示波器,PA5接探头,GND接地接口。示波器图像如图:

stm32cubemx pwm测量输入频率_右键_23

三、数字音频数据转换为模拟音频波形输出

1.音频截取

• 用audition打开一个音频,截取一段右键存储选区为:

stm32cubemx pwm测量输入频率_右键_24


将采用率和声道以及位深度修改为如上图所示。

2.生成周期点

• 可以仿照上面生成周期点的步骤生成。
• 下面我使用如下软件生成:

软件网盘地址:百度网盘资源 提取码:7egp

stm32cubemx pwm测量输入频率_正弦波_25


• 步骤如下:(第二步可选择压缩)

stm32cubemx pwm测量输入频率_右键_26


• 点击保存代码,打开后复制即可:

stm32cubemx pwm测量输入频率_正弦波_27

3.运行结果

• 可将复制的粘贴到第二个实验的工程里面:

stm32cubemx pwm测量输入频率_正弦波_28


• 出现问题仿照上面修改。

成功后:

stm32cubemx pwm测量输入频率_右键_29


• 将hex文件烧录到开发板。

• 将开发板连接到示波器,示波器探头接PA5结果如下:

stm32cubemx pwm测量输入频率_右键_30


完成。