OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6465|回复: 7

急求大神帮助,关于wm8978录音问题

[复制链接]

6

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2015-12-7
在线时间
14 小时
发表于 2016-2-21 19:16:44 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 flmss 于 2016-2-21 19:22 编辑

我采用stm32f407探索者开发板,通过wm8978进行录音实验。
现在想将wm8978采集到的声信号,不经过SD卡,读取出来。请问这些声信号的数据,是存储在i2srecbuf1和i2srecbuf2这两个数组中吗?
我通过串口去读取i2srecbuf1中的信号,读出的信号好像是杂音,而不是录制的声音。
[mw_shl_code=c,true]//进入PCM 录音模式                   
void recoder_enter_rec_mode(void)
{
        u8 i;
        delay_ms(3000);
        WM8978_ADDA_Cfg(0,1);                //开启ADC
        WM8978_Input_Cfg(1,1,0);        //开启输入通道(MIC&LINE IN)
        WM8978_Output_Cfg(0,1);                //开启BYPASS输出
        WM8978_MIC_Gain(46);                //MIC增益设置
       
        WM8978_I2S_Cfg(2,0);                //飞利浦标准,16位数据长度
        I2S2_Init(0,2,0,0);                        //飞利浦标准,主机发送,时钟低电平有效,16位帧长度
        I2S2ext_Init(0,1,0,0);                //飞利浦标准,从机接收,时钟低电平有效,16位帧长度       
        I2S2_SampleRate_Set(16000);        //设置采样率
        I2S2_TX_DMA_Init((u8*)&i2splaybuf[0],(u8*)&i2splaybuf[1],1);                 //配置TX DMA
        DMA1_Stream4->CR&=~(1<<4);        //关闭传输完成中断(这里不用中断送数据)
        //I2S2ext_RX_DMA_Init(i2srecbuf1,i2srecbuf2,I2S_RX_DMA_BUF_SIZE/2);         //配置RX DMA,每次传输数据量为2048
        I2S2ext_RX_DMA_Init(i2srecbuf1,i2srecbuf2,I2S_RX_DMA_BUF_SIZE/2);
          i2s_rx_callback=rec_i2s_dma_rx_callback;//回调函数指wav_i2s_dma_callback
        I2S_Play_Start();        //开始I2S数据发送(主机)
        I2S_Rec_Start();         //开始I2S数据接收(从机)
        for(i=0;i<400;i++)
        {
                printf("%d\r\n",i2srecbuf1);//通过串口打印出i2srecbuf1数组中的数据
        }       
        recoder_remindmsg_show(0);
}  [/mw_shl_code]
我在正点原子的代码中加入了 for(i=0;i<400;i++)
        {
                printf("%d\r\n",i2srecbuf1);//通过串口打印出i2srecbuf1数组中的数据
        }
部分,用于通过串口打印其中的数据。读出的好像是杂音。
求教,如果我想通过串口去读出录制的声信号,应该通过读取哪个数组才对?或者哪个寄存器?求好心人解疑


最佳答案

查看完整内容[请看2#楼]

是存放在这两个数组里面的,不过输出速度非常快,你的串口来读取,速度不够啊....自然就不连续有杂音了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-2-21 19:16:45 | 显示全部楼层
是存放在这两个数组里面的,不过输出速度非常快,你的串口来读取,速度不够啊....自然就不连续有杂音了
回复

使用道具 举报

6

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2015-12-7
在线时间
14 小时
 楼主| 发表于 2016-2-21 22:20:52 | 显示全部楼层
正点原子 发表于 2016-2-21 19:16
是存放在这两个数组里面的,不过输出速度非常快,你的串口来读取,速度不够啊....自然就不连续有杂音了

请问原子哥,我想把输出的音频读出来,然后通过wifi模块发送出去。那么我怎么样做才能达到这个目的呢。
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-6-11
在线时间
1 小时
发表于 2016-6-11 22:15:37 | 显示全部楼层
flmss 发表于 2016-2-21 22:20
请问原子哥,我想把输出的音频读出来,然后通过wifi模块发送出去。那么我怎么样做才能达到这个目的呢。

顶起来,我也想知道
回复

使用道具 举报

9

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2016-7-18
在线时间
67 小时
发表于 2016-12-16 19:15:37 | 显示全部楼层
flmss 发表于 2016-2-21 22:20
请问原子哥,我想把输出的音频读出来,然后通过wifi模块发送出去。那么我怎么样做才能达到这个目的呢。

这个我也想知道,要自己写一个FIFO吗
回复

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2016-6-21
在线时间
13 小时
发表于 2017-3-16 10:19:18 | 显示全部楼层
请问 如果我把信号传到电脑上了  然后电脑怎么去解码啊 有没有相关的软件。
回复

使用道具 举报

seawaysar 该用户已被删除
发表于 2017-4-6 23:00:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

2

主题

4

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-5-18
在线时间
4 小时
发表于 2019-6-10 15:43:05 | 显示全部楼层
有代码吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 11:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表