TI—CC3200【2】通过UDP传输音频

    手上有一套TICC3200+TLV320AIC3254开发板,这个是TI官方出的一款评估板。

    在官方给出的例程里面只有一个是关于音频的“wifi_audio_app”,这个例子使用两块开发板相互连接后相互传输音频并且播放的。

    现在我手上只有一块开发板,而且对TI的片子还不是很熟悉,现在我想在这个例子上面做一个修改,修改为:用这个开发板采集音频,然后通过UDP上传至电脑,在电脑上使用网络助手接收开发板上传的音频。

    这个程序的大概流程是:初始化(硬件初始化、引脚配置初始化、串口初始化、I2C接口初始化、创建接收和播放音频的缓冲区、初始化和配置音频芯片、初始化I2S、初始化DMA)、开始simplelink、创建网络任务、创建控制任务、创建录音任务、创建放音任务。

    放音的任务暂时不用的,将其屏蔽。

    【折腾了很长时间后才发现】在控制任务里面其实就是改变一些标志位,从而达到在实时的时间播放或者录音的目的,故而将这个任务也屏蔽掉。

    在网络任务里面,首先是尝试自动连接网络,如果链接不上就使用智能配置链接网络。网络链接上之后是创建UDP服务器,然后执行“mDNS_Task();”任务。但是在测试的时候,程序在这个里面会报错,暂时不知道这个任务是干嘛用的,就直接注释掉了。注释掉之后发现每当链接网络成功并且创建UDP服务器成功之后,整个程序就停止了,后来又发现,这个网络任务必须要有个while(1)循环,否则整个程序会停止,然后将mDNS_Task();”里面的代码修改成:

//*****************************************************************************
//
//! mDNS_Task function
//!
//! \param  None
//!
//! \return None
//!
//*****************************************************************************
void mDNS_Task()
{
    int lRetValmDNS;
    unsigned int pAddr;
    unsigned long usPort;
    unsigned short     ulTextLen = 200;
    char cText[201]; 

 
    //UnRegister mDNS Service if done Previously
    lRetValmDNS = sl_NetAppMDNSUnRegisterService((signed char *)CC3200_MDNS_NAME,
                              strlen(CC3200_MDNS_NAME));

    while(1)
    {  
        /*

    	lRetValmDNS = 1;
        
        //Read mDNS service.
        while(lRetValmDNS)
        {
            ulTextLen = 200;
            lRetValmDNS = sl_NetAppDnsGetHostByService((signed char *) \
                                    CC3200_MDNS_NAME,
                                    strlen((const char *)CC3200_MDNS_NAME),
                                    SL_AF_INET,(unsigned long *)&pAddr,&usPort,
                                    &ulTextLen,(signed char *)&cText[0]);

            UART_PRINT("mDNS service return : %d \n\r",lRetValmDNS);

        }
        if(lRetValmDNS == 0 && (pAddr!=INVALID_CLIENT_ADDRESS) && \
                                                 (pAddr!=g_uiIpAddress))
        {               
             //Speaker Detected - Add Client
             g_UdpSock.Client.sin_family = AF_INET;
             g_UdpSock.Client.sin_addr.s_addr = htonl(pAddr);
             g_UdpSock.Client.sin_port = htons(usPort);
             g_UdpSock.iClientLength = sizeof(g_UdpSock.Client);

             g_loopback = 0;

        }

        */
         
             MAP_UtilsDelay(80*1000*100);
    }    
}
即,在这个任务里面做一个
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值