No.105769 作者:wangxd5429 邮件:wangxd5429@sohu.com ID:30288 登陆:55次 文章数:56篇 最后登陆IP:211.103.220.197 最后登陆:2017/1/4 14:21:50 注册:2005/1/21 11:46:15 财富:452 发帖时间:2014/5/27 9:56:47 发贴者IP:61.148.242.155 标题:wangxd5429:[求助]关于STM32单片机录音的问题 摘要:No.105769[求助]关于STM32单片机录音的问题 各位高手,小弟正在基于STM32单片机开发音频采集应用,运行程序后,发现存储的音频文件无内容。调试后发现调用VS1003_ReadReg(SPI_HDAT1)读出的值不在256和896之间,无法执行后续的操作。请教其中的原因。以下是主函数的代码。谢谢! u16 w; FIL* f_rec=0; __WaveHeader *wavhead=0; u8 *recbuf; u8 *pname=0; u16 idx=0; u32 sectorsize=0; RCC_Configuration(); //设置内部时钟及外设时钟使能 if (SysTick_Config(720)) //时钟节拍中断时10us一次 用于定时 { /* Capture error */ while (1); } NVIC_Configuration(); //中断源配置 //xRST =1 Usart1_Init(); //串口1初始化 SPI_VS1003_Init(); //VS1003 初始化 Delay_us(10000); //延时100ms SD_TEST(); //SD卡测试函数 disk_initialize(0); //fatfs可以管理多个介质的分区, 所以把物理存储介质SST25VF016B标示为0区,相当于磁盘编号 //VS1003_start();/*启动VS1003*/ f_mount(0, &fs); //将文件系统设置到0区 f_rec = (FIL *)malloc (sizeof(FIL)); //开辟FIL字节的内存区域 if (f_rec == NULL) { USART_OUT(USART1,"\n f_rec malloc error \n"); } wavhead = (__WaveHeader*)malloc (sizeof(__WaveHeader));/*分配WAV音频头文件存储空间*/ if (wavhead == NULL) { USART_OUT(USART1,"\n wavhead malloc error \n"); } /*分配接收缓冲区内存空间*/ recbuf = malloc (512); if(recbuf==NULL) { USART_OUT(USART1,"\n recbuf malloc error \n"); } /*分配pname存储空间*/ pname = malloc(30); //申请30个字节内存,类似"0:RECORDER/REC00001.wav" if(pname==NULL) { USART_OUT(USART1,"\n pname malloc error \n"); } VS1003_start() ......
>>返回讨论的主题
|