完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在LWIP TCP 服务端的情况下与电脑的服务器建立连接,希望能通过TCP发送VS1053采集的音频数据,但是发送出的数据高八位一直像地址一样的在增加,不是音频数据,但我不太清楚是什么。比如:23 01 8F 01 7E 01 6C 01 2A 02 12 02 6C 02 7B 03 9A 03 FF 03 ,监测发现通过w=VS_RD_Reg(SPI_HDAT1); 语句读出的值就是这样了,不知道是哪儿和这个读的语句冲突了吗?
建立连接和发送的程序就是下面这样,除此之外我还改了一个LWIP轮询时间为50ms,其他的就没改动,只是把LWIP RAW TCP CLIENT实验和录音机实验综合在一起了。 求做过的人帮忙看看,新手调了几天了一直都不行,确实找不出解决办法了 [C] 纯文本查看 复制代码 void tcp_client_test(void){ struct tcp_PCB *tcppcb; struct ip_addr rmtipaddr; u8 *tbuf; u8 key;u8 res=0;u16 t=0; /////////////////////the recorder definitions///////u8 rval=0;u8 *recbuf; u16 w;u16 idx=0;u16 send_cnt=0;u8 rec_sta=0;u8 timecnt=0; u32 recsec=0; u8 recagc=7;int m=0;u8 connect_flag=0;////////////////////////////////////////////////////printf("ip OKrn");recbuf=mymalloc(SRAMIN,512); if(recbuf==NULL){rval=1; printf("rval failed");}tcppcb=tcp_new();if(tcppcb){IP4_ADDR(&rmtipaddr,lwipdev.remoteip[0],lwipdev.remoteip[1],lwipdev.remoteip[2],lwipdev.remoteip[3]);// tcp_connect(tcppcb,&rmtipaddr,TCP_CLIENT_PORT,tcp_client_connected); }else res=1;while(res==0){lwip_periodic_handle();lwip_pkt_handle();delay_ms(2);t++;if(t==200){if((tcp_client_flag&1<<5)==0){ connect_flag=0;tcp_client_connection_close(tcppcb,0);tcppcb=tcp_new();if(tcppcb){ tcp_connect(tcppcb,&rmtipaddr,TCP_CLIENT_PORT,tcp_client_connected);}}else connect_flag=1;t=0;printf("rval=%d and flag=%drn",rval,tcp_client_flag&1<<5);LED0=!LED0; }if((rval==0)&&(connect_flag==1)) {printf("recordrn");recoder_enter_rec_mode(1024*recagc);while(VS_RD_Reg(SPI_HDAT1)>>8);while(rval==0) {lwip_periodic_handle();lwip_pkt_handle();t++;if(t==1000){printf("t=%drn",t);if((tcp_client_flag&1<<5)==0){ connect_flag=0;tcp_client_connection_close(tcppcb,0);tcppcb=tcp_new();if(tcppcb){ tcp_connect(tcppcb,&rmtipaddr,TCP_CLIENT_PORT,tcp_client_connected);}}else connect_flag=1;t=0;//printf("rval=%d and flag=%drn",rval,tcp_client_flag&1<<5);LED0=!LED0;}LED0=!LED0;rec_sta|=0X80;//开始录音if(rec_sta==0X80){w=VS_RD_Reg(SPI_HDAT1);if((w>=256)&&(w<896)){idx=0;while(idx<512) { w=VS_RD_Reg(SPI_HDAT0); tcp_client_sendbuf[send_cnt++]=w&0XFF;tcp_client_sendbuf[send_cnt++]=w>>8;idx+=2;}if(send_cnt==1024){send_cnt=0;//tcp_client_flag|=1<<7;tcp_write(tcppcb,tcp_client_sendbuf,1024,1);tcp_output(tcppcb);printf("%s",tcp_client_sendbuf);} } } } } } tcp_client_connection_close(tcppcb,0); myfree(SRAMIN,recbuf); } |
|
相关推荐
2个回答
|
|
我调好啦,上面这样写是没问题的,是我之前上位机程序写错了。
|
|
|
|
录音的时候,耳机会播放吗?
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2549 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2333 浏览 5 评论
3165 浏览 3 评论
2806 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2763 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
612浏览 1评论
859浏览 0评论
974浏览 0评论
626浏览 0评论
453浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 21:55 , Processed in 1.073803 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号