基于stm32f1的无线实时对讲机语音传输系统

2019-07-21 03:02发布

经过不懈努力调试,终于完成了无线语音对讲机。
本次采用的是STM32F103C8T6 + VS1053 + NRF24L01
VS1053模块采用的是ADPCM录音编码,比PCM编码大概压缩了四倍,能很好地将语音信息通过nrf实时地传输出去,基本上接收端播放没有延时。


下面是部分代码,需要完整代码的可以联系我:Q:850995894


int main(void)
{
        Led_Init();
        delay_init();  
        Key_Init();
  VS_Init();
        NRF24L01_Init();
        while(NRF24L01_Check());
  VS_Sine_Test();
  talking();//对讲模式
}




        while(1)
        {
         if(Key == 0)                                                               
         {
                 u32 t=0;
                 delay_ms(500);
                 NRF24L01_TX_Mode();
                 talking_rec_mode(4);                                               
                 while(Key == 0)   
                 {
                               
                        delay_ms(1);
                        w1=VS_RD_Reg(SPI_HDAT1);       
                        if((w1>=256)&&(w1<896))                       
                        {
                                w1=0;
                                led2=0;                                                                
                                count=0;
                                t=0;
                                while(count<256)                                        
                                                {         
                                                        w2=VS_RD_Reg(SPI_HDAT0);          
                                                        w3=w2>>8;
                                                        databuf[t++]=w3;      
                                                        databuf[t++]=w2&0XFF;               
                                                        count=1+count;
                                                }
                       
                                for(i=0;i<16;i++)                                                       
                                         {
                                                if(NRF24L01_TxPacket(databuf)==TX_OK)
                                                 {
                                                        databuf=databuf+32;                       
                                                 }
                                         }
                                         
                         led2=1;                                                                                               
                         databuf=p;                                                                                       
                         flag=0;                                                                                                                 
                        }
                }       
                NRF24L01_RX_Mode();       
         }
         

        }






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。