OpenEdv-开源电子网

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

F4开发板 怎样同时打开播放与采集,单独两种都没有问题(付部分代码)

[复制链接]

9

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2015-9-25
在线时间
3 小时
发表于 2015-12-16 17:15:53 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]单独从网络接收音频数据播放,或者单独采集音频发送出去,测试都是正常的,现在我需要一边采集一边播放,结果是只能打开一种,回调函数都正常能显示采集数据或者到播放数据,我感觉是什么参数设置错了(开启了一种把另外一种关闭了)一周都没有什么眉目了,来求助下,感谢大家帮忙![/mw_shl_code] [mw_shl_code=c,true]//设置播放参数[/mw_shl_code] [mw_shl_code=c,true]void PCMPlay(void) { u8 key; u8 t=0; u8 res; u32 fillnum; audiodev.file=(FIL*)mymalloc(SRAMIN,sizeof(FIL)); audiodev.i2sbuf1=mymalloc(SRAMIN,WAV_I2S_TX_DMA_BUFSIZE); audiodev.i2sbuf2=mymalloc(SRAMIN,WAV_I2S_TX_DMA_BUFSIZE); audiodev.tbuf=mymalloc(SRAMIN,WAV_I2S_TX_DMA_BUFSIZE); //打开播放 recoder_enter_play_mode(); WM8978_I2S_Cfg(2,0); I2S2_Init(I2S_Standard_Phillips,I2S_Mode_MasterTx,I2S_CPOL_Low,I2S_DataFormat_16b); I2S2_SampleRate_Set(16000);//?è?????ù?? I2S2_TX_DMA_Init(audiodev.i2sbuf1,audiodev.i2sbuf2,WAV_I2S_TX_DMA_BUFSIZE/2); i2s_tx_callback=wav_i2s_dma_tx_callback; audio_stop(); mymemset(audiodev.i2sbuf1,0,WAV_I2S_TX_DMA_BUFSIZE); mymemset(audiodev.i2sbuf2,0,WAV_I2S_TX_DMA_BUFSIZE); audio_start(); }[/mw_shl_code] [mw_shl_code=c,true]
[mw_shl_code=c,true]//进入放音模式 void recoder_enter_play_mode(void) { WM8978_ADDA_Cfg(1,0); WM8978_Input_Cfg(0,0,0); WM8978_Output_Cfg(1,0); WM8978_MIC_Gain(0); I2S_Play_Stop(); I2S_Rec_Stop(); recoder_remindmsg_show(1); }[/mw_shl_code]
因为先进入放音模式,就不会停止录音模式的I2S采集那些,希望指正下,感谢
[mw_shl_code=c,true]//进入录音模式 void recoder_enter_rec_mode(void) { WM8978_ADDA_Cfg(0,1); WM8978_Input_Cfg(1,1,0); // WM8978_Output_Cfg(0,1); WM8978_MIC_Gain(35); WM8978_I2S_Cfg(2,0); I2S2_Init(I2S_Standard_Phillips,I2S_Mode_MasterTx,I2S_CPOL_Low,I2S_DataFormat_16b); I2S2ext_Init(I2S_Standard_Phillips,I2S_Mode_SlaveRx,I2S_CPOL_Low,I2S_DataFormat_16b); I2S2_SampleRate_Set(16000); I2S2_TX_DMA_Init((u8*)&i2splaybuf[0],(u8*)&i2splaybuf[1],1); DMA1_Stream4->CR&=~(1<<4); I2S2ext_RX_DMA_Init(i2srecbuf1,i2srecbuf2,I2S_RX_DMA_BUF_SIZE/2); i2s_rx_callback=rec_i2s_dma_rx_callback; I2S_Play_Start(); I2S_Rec_Start(); recoder_remindmsg_show(0); } [/mw_shl_code]


[/mw_shl_code] [mw_shl_code=c,true][/mw_shl_code]

最佳答案

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

回复【2楼】hpeng1874: --------------------------------- 不是的,几个stm32F4开发板进行双向对讲,网络的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2015-9-25
在线时间
3 小时
 楼主| 发表于 2015-12-16 17:15:54 | 显示全部楼层
回复【2楼】hpeng1874:
---------------------------------
不是的,几个stm32F4开发板进行双向对讲,网络的
回复

使用道具 举报

3

主题

794

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
1502
金钱
1502
注册时间
2015-3-3
在线时间
460 小时
发表于 2015-12-16 18:39:55 | 显示全部楼层
这是在网页上操作?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 20:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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