在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 串口接收大數(shù)據(jù)包的問(wèn)題

      串口接收大數(shù)據(jù)包的問(wèn)題

      作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
      學(xué)習(xí)stm32有1年多之久了,但是串口接收數(shù)據(jù)雖然接觸的很多了,但是最近突然遇到串口中斷要接收好幾百KB乃至幾兆的數(shù)據(jù),卻一時(shí)半會(huì)想不想出設(shè)計(jì)方案來(lái)。還是學(xué)的不透徹,明天好好研究總結(jié)一下!

      串口總結(jié)

      串口如何接收大數(shù)據(jù)經(jīng)過(guò)幾天的搜索和查證現(xiàn)總結(jié)一下。舉例來(lái)說(shuō)單片機(jī)內(nèi)存只有512KB,而我們要接收一包1M的圖片數(shù)據(jù)并送至液晶屏LCD顯示。很顯然單片機(jī)的內(nèi)存不足1M如果接收完在處理,肯定會(huì)使單片機(jī)崩潰,如果我們開(kāi)辟一個(gè)512字節(jié)大小的Buffer,用串口中斷接收數(shù)據(jù),可以循環(huán)使用Buffer200多次才能將一包接收過(guò)來(lái)。這個(gè)時(shí)候,我們可以spiflash將每一包buffer數(shù)據(jù)寫(xiě)到Flash,等1M數(shù)據(jù)接收完后再?gòu)腇LASH里讀出來(lái)處理數(shù)據(jù)。但這種方案要求Flash容量必須足夠大,如果串口接收的數(shù)據(jù)不是一種的話發(fā)的很頻繁的話,也容易很快將Flash報(bào)廢,他的讀寫(xiě)次數(shù)只有10完次對(duì)同一頁(yè)的讀寫(xiě)時(shí),并且還要考慮到速度和價(jià)錢(qián)問(wèn)題。

      另一種方式就是不使用外部Flash直接對(duì)數(shù)據(jù)進(jìn)行處理,這種方式我們經(jīng)理告訴我叫做透?jìng)?需要查證)。就是接收完一個(gè)buffer512個(gè)字節(jié)后,產(chǎn)生一個(gè)標(biāo)志位置1,表示一包接收完,這個(gè)時(shí)候我們開(kāi)啟另一個(gè)定時(shí)器中斷定時(shí)查詢(xún)標(biāo)志位,如果標(biāo)志位為1,我們將數(shù)據(jù)提取出來(lái),送至LCD顯示,當(dāng)然這里有個(gè)細(xì)節(jié)要求,需要LCD發(fā)送數(shù)據(jù)足夠快,數(shù)據(jù)送完后,串口中斷才會(huì)接收,也就是處理數(shù)據(jù)的速度要比串口接收數(shù)據(jù)的速度快,我們也可以適當(dāng)調(diào)低串口波特率,降低速度,如果是9600,算法如下一包數(shù)據(jù)有起始位,結(jié)束位,數(shù)據(jù)位共10個(gè),9600/10=960,也就是一秒接收960個(gè)字節(jié),1MS接收0.96個(gè)字節(jié),也就是說(shuō)1Ms多一點(diǎn)就一個(gè)字節(jié),而處理的速度要在1MS內(nèi)完成才不會(huì)被中斷打斷。


      評(píng)論


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

      關(guān)閉