2536|0

659

帖子

1

TA的资源

纯净的硅(中级)

楼主
 

MXCHIP+(2)Using DAC to generate audio [复制链接]

本帖最后由 mars4zhu 于 2015-1-4 09:29 编辑







MXCHIP+2Using DAC to generate audio



文档编号
RD-0101-A0
关键字
MX1081, STM32F20x, STM32Cube, STM32 HAL Driver
摘要
本文档记录了使用STM32Cube的图形化配置工具STM32CubeMX来建立MX1081MCU——STM32F20x,LQFP176的初始化代码,并使用固件库——STM32Cube F2来实现音频的生成和输出。。





Mars4zhu


目  录






插图索引




表格索引

错误!未找到目录项。



1 创建STM32CubeMX工程1.1. 选择MCU
根据MX1081Datasheet,我们得知MX1081内部MCU内核是STM32F20x LQFP176封装,1M Flash,但不知为205还是207哪一种,而且F2xx系列MCU都向下兼容,因此选择了F217 LQFP176的,1M-FlashMCU
1.2. 设置引脚功能
MX1081Datasheet得知Core1081(核心板)的LEDPI9,因此我们在STM32CubeMXPinOut中设置PI9GPIO_Output,同时应该选择Sys中的SWD接口,此时STM32CubeMx自动将PA13PA14设置为SWDIOSWCLK功能。
图 11  STM32CubeMX配置MX1081-MCU的系统引脚

最重要的当然是采用DAC输出引脚。我们选择PA4/PA5作为DAC1DAC2的输出引脚。


图 12  STM32CubeMX配置MX1081-MCUDAC引脚
1.3. 设置MCU运行时钟
STM32CubeMXClock Configuration,这里选择了MCUHSI内部高速时钟,并采用PLL对其倍频到最大频率,如下图:
图 13  STM32CubeMX配置MX1081-MCU的时钟
1.4. 设置MCU外设初始化模式
STM32CubeMXConfiguration,设置MX1081DAC初始化参数,如下图:
图 14  STM32CubeMX配置MX1081-MCUDAC初始化
1.5. 设置工程参数和代码生成
STM32CubeMX菜单栏的Project-->Project Settings里面,配置工程生成的目录、工具链、代码生成的库引用/复制、用户代码的保留等功能。如下图:
图 15  STM32CubeMX配置MX1081-MCU的功能参数
1.6. 生成代码和工程项目文件
最后点击菜单栏的Project-->Generate Code,则STM32CubeMX自动生成了对应的目录,并添加相应的库文件或引用到工程中。
2 增加用户代码,输出Audio音频2.1. 生成音频数据
为了生成音频数据,使用了一个wave文件转成C文件的工具软件wav2c。该软件读取.wav文件中的音频数据,然后生成C代码。
图 21  使用WAV2C生成音频数据的C文件
2.2. 添加用户代码
STMCubeMX生成的代码里,main函数分别调用几个初始化函数(也是自动生成)后,MCU的引脚、外设就进入了我们设置的状态。因此直接在后面添加简单的用户代码即可,如下:
  1. /* USER CODE BEGIN 4 */

  2. static float volumn = 1.0f;
  3. void HAL_SYSTICK_Callback()
  4. {
  5. uint8_t DAC_Value = audio_data[HAL_GetTick()%audio_data_len]/volumn;
  6. HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_8B_R, DAC_Value);
  7. DAC_Value = audio_data2[HAL_GetTick()%audio_data_len2]/volumn;
  8. HAL_DAC_SetValue(&hdac, DAC_CHANNEL_2, DAC_ALIGN_8B_R, 0xFF-DAC_Value);
  9. }
  10. /* USER CODE END 4 */
复制代码

以上代码使用systick中断来更新DAC的数据。这是systick应设置为音频数据的同样的采样率。
3 运行效果
使用Jlink下载后,连接open1081analog-modulePA4,可以听到音频声音。
Keil中修改Volume的值,可以改变音量。
图 31  MX1081-MCU的音频输出效果图
http://v.youku.com/v_show/id_XODYwOTMzMjky.html

4 总结
STM32Cube提供了固件库,用户可直接调用固件库函数来开发,并且可以很好的实现STM32-MCU全系列的代码一致性。同时STM32CubeMX工具提供的可视化引脚、外设、时钟等配置功能,可以帮助快速完成工程的建立、初始化。大大降低了开发者的工作量。
采用wav2c等工具,可以快速生成音频代码。而DAC的采样率、位数,都具有非常快捷的灵活修改,可以很好的生成较优质的音频。



版本历史(Revision History

版本号
发布时间
内容
A0
2014-12-11
初次发布。





MXCHIP (2)Using DAC to generate audio.pdf (818.73 KB, 下载次数: 7)
此帖出自无线连接论坛
点赞 关注(1)
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表