新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 串口發(fā)送MP3遇到的尷尬問(wèn)題

        串口發(fā)送MP3遇到的尷尬問(wèn)題

        作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
        最近打算打造一款由PC端電腦串口發(fā)送MP3文件數(shù)據(jù)到STM32上,然后有stm32 將數(shù)據(jù)壓包再發(fā)送給vs1003解碼播放出聲音來(lái)。之前的方式是通過(guò)SPI讀SD卡里的文件,再通過(guò)SPI方式發(fā)送出去,這兩種方式都是stm32為主然后分別向兩個(gè)SPI設(shè)備要數(shù)據(jù)發(fā)數(shù)據(jù),這種方式實(shí)現(xiàn)起來(lái)很簡(jiǎn)單。但是如果改為串口發(fā)送音樂(lè)數(shù)據(jù)的話,那么stm32很被動(dòng),要時(shí)刻進(jìn)入中斷停止其他活動(dòng),這樣當(dāng)向vs003發(fā)送語(yǔ)音數(shù)據(jù)時(shí),數(shù)據(jù)沒(méi)發(fā)送完畢,一個(gè)中斷劈來(lái),就崩潰了。我嘗試直接進(jìn)入中斷后,把數(shù)據(jù)在中斷里發(fā)送給vs1003,但實(shí)際上,比以前效果好 ,但斷斷續(xù)續(xù),肯定是解碼不同步,時(shí)間差太大 。

        我在想,如果,沒(méi)來(lái)一個(gè)中斷肯定是接受到一個(gè)字節(jié),那么總共要來(lái)512個(gè)中斷,才算滿(mǎn)一個(gè)包,然后把這個(gè)包發(fā)送給vs1003,如果再來(lái)下一個(gè)中斷前,512個(gè)字節(jié)恰好發(fā)送完畢,那么還剩511個(gè)中斷,期間vs1003肯定斷了音。如果511個(gè)中斷來(lái)臨之前音樂(lè)恰好發(fā)送出去,那么又會(huì)響512次,但還是會(huì)斷斷續(xù)續(xù),只不過(guò)比剛才貌似連貫了些。

        本文引用地址:http://www.104case.com/article/201611/322282.htm


        關(guān)鍵詞: 串口發(fā)送MP

        評(píng)論


        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 格尔木市| 富民县| 平果县| 额敏县| 辉县市| 调兵山市| 金沙县| 大悟县| 买车| 集贤县| 井陉县| 本溪市| 临安市| 茶陵县| 肇庆市| 郑州市| 旬阳县| 东兰县| 简阳市| 马龙县| 信阳市| 朔州市| 阿克陶县| 梁平县| 进贤县| 神池县| 榕江县| 洛阳市| 青海省| 兖州市| 汾阳市| 富民县| 佳木斯市| 毕节市| 安达市| 田东县| 英超| 栖霞市| 大方县| 宁陕县| 城固县|