用AD转换声音信号,DA还原声音,一直实现不了,论坛里有人做过吗?

2019-07-20 23:10发布

最近一直在弄用AD转换声音信号,然后用DA还原播放声音,可是一直都实现不了,希望有人指导一下,谢谢!以下是主要的代码(我是采用DMA方式传输的)
AD主要代码(在AD的实验上加了DMA配置和定时器2中断实现AD开始转换):
#define ADC1_DR_Address    0x4001244C
u16 ADC_Value;
//DMA配置

//定时器2配置



DAC1主要代码(利用DMA传输、定时器6定时触发DAC)
#define DAC_DHR12R1_Address      0x40007408
uint16_t DAC_Value;



主函数主要部分
extern u16 ADC_Value;
extern uint16_t DAC_Value;

DMA_Config(ADC1_DR_Address,(u32)&ADC_Value,1);
再初始化其他函数后
while(1)
{
DAC_Value = ADC_Value;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
49条回答
伊轩海
1楼-- · 2019-07-26 08:31
回复【42楼】xuande:
---------------------------------
哈哈,很直观的解释,懂了,又学习到了,谢谢谢谢!
xuande
2楼-- · 2019-07-26 11:33
通过这次实验,要学会核算指标。

比照串口,无线模块的速率够不够,这是首先要考虑的。具体不了解模块,没法说了。
伊轩海
3楼-- · 2019-07-26 13:05
回复【45楼】xuande:
---------------------------------
嗯嗯,谢谢你的忠告,看来我真的没怎么了解无线模块,还是继续尝试用串口调试一下!谢谢!
伊轩海
4楼-- · 2019-07-26 13:15
 回复【32楼】 xuande :
# xuande
---------------------------------
用串口调试的时候,我还是想传输12位的AD值(希望声音清晰一些),而且试了一下,发现另一块MINIV3.0串口接收到的数据,再经DA转换,喇叭播放的声音带有很大噪音,而且也失真,可以帮我看看程序有什么问题吗?谢谢!!采样率8K,波特率19200和115200都试过
串口1在主函数里一直发送
[mw_shl_code=c,true] while(1) { if(ADC_TimeOutFlag==1)//定时器定时采样率标志位 { txbuff[0]=ADC_Value/256;//高4位 txbuff[1]=ADC_Value%256;//低8位 USART_SendData(USART1,txbuff[i++]); if(i==2) i=0; while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET); ADC_TimeOutFlag=0; } }[/mw_shl_code] 串口3中断接收;主函数进行DA转换
[mw_shl_code=c,true]void USART3_IRQHandler(void) { if(USART_GetITStatus(USART3,USART_IT_RXNE)==SET) { while(USART_GetFlagStatus(USART3,USART_FLAG_RXNE)==SET) { rxbuff[i++] = USART_ReceiveData(USART3); if(i==2) i=0; } USART_ClearITPendingBit(USART3,USART_IT_RXNE); } }[/mw_shl_code] [mw_shl_code=c,true] while(1) { if(DAC_TimeOutFlag==1) { DAC_Value = rxbuff[0]*256+rxbuff[1]; DAC_SetChannel1Data(DAC_Align_12b_R, DAC_Value); DAC_TimeOutFlag=0; } }[/mw_shl_code]





xuande
5楼-- · 2019-07-26 14:19
 精彩回答 2  元偷偷看……
automatic
6楼-- · 2019-07-26 15:51
回复【47楼】伊轩海:
---------------------------------
楼主你好,我最近也在做这个项目,我用了ADC、DMA和DAC,程序运行之后,没有错误,但下载后没有任何结果,看到你做出来了,可以把你的程序提供给我参考一下吗?

一周热门 更多>