最近打算打造一款由PC端電腦串口發(fā)送MP3文件數(shù)據(jù)到STM32上,然后有stm32 將數(shù)據(jù)壓包再發(fā)送給vs1003解碼播放出聲音來。之前的方式是通過SPI讀SD卡里的文件,再通過SPI方式發(fā)送出去,這兩種方式都是stm32為主然后分別向兩個(gè)SPI設(shè)備要數(shù)據(jù)發(fā)數(shù)據(jù),這種方式實(shí)現(xiàn)起來很簡(jiǎn)單。但是如果改為串口發(fā)送音樂數(shù)據(jù)的話,那么stm32很被動(dòng),要時(shí)刻進(jìn)入中斷停止其他活動(dòng),這樣當(dāng)向vs003發(fā)送語音數(shù)據(jù)時(shí),數(shù)據(jù)沒發(fā)送完畢,一個(gè)中斷劈來,就崩潰了。我嘗試直接進(jìn)入中斷后,把數(shù)據(jù)在中斷里發(fā)送給vs1003,但實(shí)際上,比以前效果好 ,但斷斷續(xù)續(xù),肯定是解碼不同步,時(shí)間差太大 。我在想,如果,沒來一個(gè)中斷肯定是接受到一個(gè)字節(jié),那么總共要來512個(gè)中斷,才算滿一個(gè)包,然后把這個(gè)包發(fā)送給vs1003,如果再來下一個(gè)中斷前,512個(gè)字節(jié)恰好發(fā)送完畢,那么還剩511個(gè)中斷,期間vs1003肯定斷了音。如果511個(gè)中斷來臨之前音樂恰好發(fā)送出去,那么又會(huì)響512次,但還是會(huì)斷斷續(xù)續(xù),只不過比剛才貌似連貫了些。
本文引用地址:http://m.butianyuan.cn/article/201611/322282.htm
評(píng)論