串口接收音乐数据并播放的问题

      项目中要实现从电脑串口助手发送一包数据,此数据是音乐文件,发送给stm32,存储到AT45DBFlash里,然后存到一定的页数后 ,在读出来送给vs1053播放,调试中遇到的问题是偶尔能写进去,也能读出来,但并不是每次都能成功,存储器有2000页,每页256个字节,我就固定让他写100页,不管外部的音乐文件多大,只存0.4*100KB,也即是40KB,但实际测试中,每接收256个字节为一包,然后将这包数据写入Flash,依次循环,但实际中发现有时候会不成功,我第一次写的歌曲a,第二次写歌曲b,但是 b没播出来,所以这个时候,还是建议用定时器中断的方式,来强制执行写入Flash里,也就是每几个毫秒查看中断,一报数据接收是否完毕,如果完毕,将buffer写进Flash里,结果证明还是可行的,但音质有所下降,貌似第一种方法写得很清楚,但偶尔会出现不成功的现象,at45dbFlash存储器不见得非常好使。

串口接受大数据还是开启定时中断处理较好。

最新评论

  1. 木头猫
    发布于:2015-05-18 17:10 回复
    串口接收一包数据,写flash 的时候,串口还是有下一包的数据过来 会不会有影响。为什么用定时器中断查询一包数据是否接受完而不是计数器计数? 请指点
    1. 发布于:2015-05-20 16:14 回复
      @木头猫:有影响的,写的速度要快,否则没写完buffer就更新了,或者用两个buffer,接收的和写的不冲突,计数器 也行 ,定时器是在查有没有数据再发

sitemap