最近计划打造一款由PC端电脑串口发送MP3文件数据到STM32上,然后有stm32 将数据压包再发送给vs1003解码播映出声响来。之前的方法是经过SPI读SD卡里的文件,再经过SPI方法发送出去,这两种方法都是stm32为主然后分别向两个SPI设备要数据发数据,这种方法完成起来很简单。可是假如改为串口发送音乐数据的话,那么stm32很被迫,要时间进入中止中止其他活动,这样当向vs003发送语音数据时,数据没发送结束,一个中止劈来,就溃散了。我测验直接进入中止后,把数据在中止里发送给vs1003,但实际上,比曾经作用好 ,但时断时续,必定是解码不同步,时间差太大 。
我在想,假如,没来一个中止必定是接受到一个字节,那么一共要来512个中止,才算满一个包,然后把这个包发送给vs1003,假如再来下一个中止前,512个字节刚好发送结束,那么还剩511个中止,期间vs1003必定断了音。假如511个中止降临之前音乐刚好发送出去,那么又会响512次,但仍是会时断时续,只不过比方才形似连接了些。