新手上路
- 积分
- 37
- 金钱
- 37
- 注册时间
- 2018-7-26
- 在线时间
- 8 小时
|
13金钱
我试了两种模式,一种是ESP8266作为客户端工作在透明传输模式,在这模式下小的txt文件能够正常发送,但最后会多出两个字节不知道什么东西,发送WAV文件就不行了;
另一种有应答模式,ESP8266作为服务器,这种大到几百k的txt文件可以正常发送,但是wav文件就不行,我发送完用编辑器打开后发现每次都是从第七个字节开始出错,连AT指令都发出去了,我调整每一帧的大小,不同大小的帧接受到的文件大小是不一样的,我只需要发送96k大小的wav文件而已,当我把每帧设定为20个字节而已时,接受到的文件达到了154k,每帧设定为1024个字节时,接收到的文件为20k,而且我试过每帧为七个字节,都发送失败了,接受到的文件打不开,我就想既然txt文件行,那我把SD卡中的wav文件改个后缀为txt,结果也还是不行,传送过程有试过用断点调试看memory中databuf的值,发现是正确的,所以问题应该出在传送过程中。
使用的两种模式都是TCP模式,模块作为AP,最近这边光纤断了试不了STA模式,校园网WIFI又要认证。
有试过每帧发300个字节,发送完用count计数,发现循环了321次,而源文件大小是96300B的,正好相等,但是就是接收到的文件一堆乱码。
难道这个ESP8266串口模块不能传音频文件?但是为什么txt文件可以?不管什么格式的文件传送的不都是二进制字节流吗?我对速度没要求,只要传96k的音频文件而已;上淘宝买了个SPI的升级版8266,还没到不知道行不行。
求大佬指点迷津,感激不尽。
|
最佳答案
查看完整内容[请看2#楼]
自己解决了忘记消帖了,希望能给搜到这篇帖子的人一点帮助。
后来改成了一个字节一个字节发 格式为%02x,接收到的终于不是乱码了,但是文件大小变为了两倍,原来的一个十六进制数被拆成两个字符,折腾了好久,发现是库函数里的u3_printf()的问题,进去里面之后,不知为什么执行了几行之后一个字节变成两个字节了,于是我试了下直接用USART_SendData(),问题就解决了。
之后终于能传声音文件了,但是怎么弄里面都有tata的噪声 ...
|