如何用串口调试助发送mp3文件

路难行 2012-12-18 03:27:15
初学C++串口编程,希望通过串口调试助手发送MP3文件到单片机上,单片机再传送给MP3播放器,现在从MSP430单片机直接发MP3部分文件给VS1003(MP3播放器)可以播放,但是由于存储空间不够只能播放一点点,但是从电脑上的串口调试助手发送MP3文件给MSP430,再由单片机发送给VS1003就出错了,不知道是什么问题?
单片机串口1用于接收pc发送过来的数据,接收一个字节就发送一个字节到VS1003,单片机用SPI2将数据发送给VS1003。串口处理程序很简单,查询接收缓冲区是否有数据,读取数据,然后通过SPI2发送。
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
mp3data = RXBUF0;
VS_Send_Dat(mp3data);
}
void VS_Send_Dat(unsigned char dat)
{
while(!(P5IN&MP3_DREQ)); //VS1003的DREQ为高才能写入数据
Mp3SelectData(); //打开数据片选,注意此时XCS(命令片选)为高电平,SDI有效
SPI_Write_Byte(dat); //通过SPI向VS1003写入一个字节的音频数据
delay(100);
Mp3DeselectData(); //关闭数据片选,SDI无效
}

求高手指点...
...全文
426 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hdg3707 2012-12-19
  • 打赏
  • 举报
回复
你单步调试,看看单片机收到的数据是不是和MP3一致
路难行 2012-12-18
  • 打赏
  • 举报
回复
各位帮帮忙啊
路难行 2012-12-18
  • 打赏
  • 举报
回复
有没有人知道是不是丢数的问题呢?MP3文件发送到单片机的时候,也许数据量太大,或者每个字节间发送时间间隔太小,导致后面的数据把前面的数据覆盖了,所以才读不到?
路难行 2012-12-18
  • 打赏
  • 举报
回复
单片机直接发送和PC发送的是一样的,但是单片机收到的MP3文件怎么看是不是和源文件一样呢?
引用 1 楼 hdg3707 的回复:
你看一下单片机直接发送到播放器的文件是什么格式,是不是没有文件头或者加了什么自定义识别头,然后你再看单片机收到MP3文件后是不是和单片机直接发送播放器的文件一样(用同一个文件试)
hdg3707 2012-12-18
  • 打赏
  • 举报
回复
你看一下单片机直接发送到播放器的文件是什么格式,是不是没有文件头或者加了什么自定义识别头,然后你再看单片机收到MP3文件后是不是和单片机直接发送播放器的文件一样(用同一个文件试)

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧