串口发送MP3遇到的尴尬问题
最近打算打造一款由PC端电脑串口发送MP3文件数据到STM32上,然后有stm32 将数据压包再发送给vs1003解码播放出声音来。之前的方式是通过SPI读SD卡里的文件,再通过SPI方式发送出去,这两种方式都是stm32为主然后分别向两个SPI设备要数据发数据,这种方式实现起来很简单。但是如果改为串口发送音乐数据的话,那么stm32很被动,要时刻进入中断停止其他活动,这样当向vs003发送语音数据时,数据没发送完毕,一个中断劈来,就崩溃了。我尝试直接进入中断后,把数据在中断里发送给vs1003,但实际上,比以前效果好 ,但断断续续,肯定是解码不同步,时间差太大 。
我在想,如果,没来一个中断肯定是接受到一个字节,那么总共要来512个中断,才算满一个包,然后把这个包发送给vs1003,如果再来下一个中断前,512个字节恰好发送完毕,那么还剩511个中断,期间vs1003肯定断了音。如果511个中断来临之前音乐恰好发送出去,那么又会响512次,但还是会断断续续,只不过比刚才貌似连贯了些。