34..STM2F469I---基于SD卡的录音及WAV
STMCU
3197 人阅读
|
0 人回复
|
2018-01-12
TA的每日心情 | 难过 2021-2-27 22:16 |
|---|
签到天数: 1568 天 连续签到: 1 天 [LV.Master]伴坛终老
司徒
- 积分
- 33047
|
【STM32F469I试用】学习记录5.基于SD卡的录音及WAV【转】
由于mini OTG口转U盘母座的线没有,一直没测试音频输入输出这块,内存卡倒是有,实在没有也可以拆手机的内存卡顶上。在官方Demo基础上把U盘存读替换为TF卡。学习下测试下录音和WAV音乐播放。先献给同我一样,缺少那根OTG 小口转母座线的同学。从此甩掉U盘和烦人线,以后播自己的MP3,录自己的音。
这是移植好SD驱动的DEMO例程,没 使用U盘播放。官方提供的音乐,播放起来音质还不错。
板载的MIC输出数据是PDM(Pulse Density Modulated 脉冲密度调制)类型的,需要软件做数字高通低通滤波,输成16位的音频格式数据。需要用到库文件libPDMFilter_CM4_Keil.lib。
连续扑在上面研究的时间不多,挤牙膏一点点学习深入吧。
先添加文件stm32469i_discovery_sd.c
新建组 fatfs/sd并添加文件
去除文件 usbh_diskio.c usbh_conf.c
找到stm32f4xx_it.c 文件注释函数 void OTG_FS_IRQHandler(void)。
拷贝目录stm32cubef4\STM32Cube_FW_F4_V1.10.0\Projects\STM32469I-Discovery\Applications\FatFs\FatFs_uSD\Inc下的ffconf.h文件替换工程目录下的。
打开文件 stm32fxx_hal_conf.h 文件 去除注释:#define HAL_SD_MODULE_ENABLED
找到文件explorer.c 做如下修改
//while(USBH_MSC_IsReady(&hUSBHost))
while(1)
在main.c中,
添加头文件
#include "stm32469i_discovery.h"
#include "stm32469i_discovery_sd.h"
/* FatFs includes component */
#include "ff_gen_drv.h"
#include "sd_diskio.h"
注释: /* Init Host Library */
//USBH_Init(&hUSBHost, USBH_UserProcess, 0);
/* Add Supported Class */
//USBH_RegisterClass(&hUSBHost, USBH_MSC_CLASS);
/* Start Host Process */
//USBH_Start(&hUSBHost);
/* USB Host Background task */
//USBH_Process(&hUSBHost);
在SystemClock_Config中添加SD卡时钟初始化
RCC_PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SDIO | RCC_PERIPHCLK_CK48;
RCC_PeriphClkInitStruct.SdioClockSelection = RCC_SDIOCLKSOURCE_CK48;
RCC_PeriphClkInitStruct.Clk48ClockSelection = RCC_CK48CLKSOURCE_PLLSAIP;
RCC_PeriphClkInitStruct.PLLSAI.PLLSAIN = 384;
RCC_PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV8;
HAL_RCCEx_PeriphCLKConfig(&RCC_PeriphClkInitStruct);
Main.c中定义全局变量 char SDPath[4];
在AUDIO_InitApplication();后添加代码
if(FATFS_LinkDriver(&SD_Driver, SDPath) == 0)
{
AppliState = APPLICATION_READY;
LCD_UsrLog("sd card is ready.\n");
}
else
{
AppliState = APPLICATION_DISCONNECT;
LCD_UsrLog("sd card not ok.\n");
}
这个DEMO就此跑通了,以后分析MIC录音,音乐播放,MP3解码方面多了。
|
|
|
|
|
|
|
|
|