欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于環(huán)形隊列的串口打印阻塞解決方法

汽車玩家 ? 來源:單片機軟件工程師 ? 作者:單片機軟件工程師 ? 2020-01-22 09:47 ? 次閱讀

隊列(FIFO)是一種常見的線性存儲結(jié)構(gòu),在嵌入式開發(fā)中經(jīng)常用到,主要的應(yīng)用場景有:

1. 高級一點的單片機內(nèi)部串行通信模塊,像UART、SPI、CAN等串行通信,內(nèi)部帶有FIFO緩存。有FIFO的模塊可以一次寫入或保存多個數(shù)據(jù),而沒有FIFO的模塊只可以寫入或保存一個數(shù)據(jù)。

2. 在RTOS中,可以通過消息隊列實現(xiàn)任務(wù)(線程)間的通信

3. 解決CPU與外設(shè)由于速度差導(dǎo)致的阻塞

基于環(huán)形隊列的串口打印阻塞解決方法

寫數(shù)據(jù)索引write,讀數(shù)據(jù)索引read,數(shù)據(jù)個數(shù)為write-read,普通隊列寫索引永遠不小于讀索引。但我們可利用的棧內(nèi)存是有限的。

一種優(yōu)化的隊列是環(huán)形隊列,也可以理解為首尾相連的隊列。當(dāng)寫索引到達最大分配內(nèi)存時,跳回到隊列的頭部繼續(xù)寫入,數(shù)據(jù)個數(shù)為(write+BUFFER_SIZE-read)%BUFFER_SIZE。

基于環(huán)形隊列的串口打印阻塞解決方法

下面以使用環(huán)形隊列來解決單片機串口打印阻塞問題為例來說明軟件實現(xiàn)。

基于環(huán)形隊列的串口打印阻塞解決方法

基于環(huán)形隊列的串口打印阻塞解決方法

基于環(huán)形隊列的串口打印阻塞解決方法

基于環(huán)形隊列的串口打印阻塞解決方法

上面代碼已經(jīng)注釋得夠詳細(xì)了,就不再描述了。

在需要打印數(shù)據(jù)時,直接調(diào)用printf函數(shù)格式化打印,在主函數(shù)大循環(huán)中執(zhí)行debug_print_task就可以了。

基于環(huán)形隊列的串口打印阻塞解決方法

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10908

    瀏覽量

    213085
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    389

    瀏覽量

    43876
  • 串口
    +關(guān)注

    關(guān)注

    14

    文章

    1559

    瀏覽量

    77105
收藏 人收藏

    評論

    相關(guān)推薦

    基于STM32的串口環(huán)形隊列IAP調(diào)試

    基于STM32的串口環(huán)形隊列IAP調(diào)試心得
    的頭像 發(fā)表于 09-18 15:33 ?1689次閱讀
    基于STM32的<b class='flag-5'>串口</b><b class='flag-5'>環(huán)形</b><b class='flag-5'>隊列</b>IAP調(diào)試

    請問串口接受用環(huán)形隊列,發(fā)送也能用嗎?

    串口接受用環(huán)形隊列,發(fā)送也可以用?發(fā)送用普通的中斷也可以
    發(fā)表于 05-07 07:56

    環(huán)形隊列串口數(shù)據(jù)接收中的使用

    前言??書接上回,前文主要介紹了環(huán)形隊列的實現(xiàn)原理以及C語言實現(xiàn)及測試過程,本文將回歸到嵌入式平臺的應(yīng)用中,話不多說,淦,上干貨!實驗?zāi)康腍AL庫下串口的配置及使用環(huán)形
    發(fā)表于 12-06 06:27

    如何使用隊列實現(xiàn)STM32串口環(huán)形緩沖?

    串口環(huán)形緩沖的好處是什么?如何使用隊列實現(xiàn)STM32串口環(huán)形緩沖?
    發(fā)表于 12-07 07:13

    基于stm32串口環(huán)形緩沖隊列處理機制是什么

    基于stm32串口環(huán)形緩沖隊列處理機制是什么
    發(fā)表于 12-08 07:06

    實現(xiàn)隊列環(huán)形緩沖的方法

    串口隊列環(huán)形緩沖區(qū)隊列串口環(huán)形緩沖的好處代碼實現(xiàn)隊列
    發(fā)表于 02-21 07:11

    環(huán)形隊列的相關(guān)資料分享

    前言??當(dāng)代碼,不再是簡單的完成需求,對代碼進行堆砌,而是開始思考如何寫出優(yōu)美代碼的時候,我們的代碼水平必然會不斷提升,今天,咱們來學(xué)習(xí)環(huán)形隊列結(jié)構(gòu)。環(huán)形隊列的基本概念??相信對數(shù)據(jù)結(jié)
    發(fā)表于 02-23 06:10

    聊一聊串口環(huán)形隊列常用的幾種方法

    ,必須通過標(biāo)志位判斷上一個包數(shù)據(jù)是否發(fā)送完成,在把新的數(shù)據(jù)覆蓋到串口的緩沖區(qū)。DMA方式優(yōu)點: 不占用系統(tǒng)資源,減少CPU對中斷的響應(yīng)。如何不建立數(shù)據(jù)包的隊列,還是會出現(xiàn),需要等待阻塞的問題。
    發(fā)表于 07-21 15:17

    cubeMX+STM32+Freertos 讀隊列阻塞

    隊列阻塞本例內(nèi)容是創(chuàng)建一個隊列,由多個任務(wù)往隊列中寫數(shù)據(jù),以及從隊列中把數(shù)據(jù)讀出。這個隊列創(chuàng)
    發(fā)表于 12-09 15:21 ?10次下載
    cubeMX+STM32+Freertos 讀<b class='flag-5'>隊列</b>時<b class='flag-5'>阻塞</b>

    FreeRTOS+STM32F103串口通信錯誤解決方法

    在調(diào)試FreeRTOS系統(tǒng)時,在串口中斷中用隊列存儲數(shù)據(jù),然后再定時器中斷中用隊列接收數(shù)據(jù),并通過串口打印出來。在調(diào)試代碼中編譯器報錯。在網(wǎng)
    發(fā)表于 12-24 18:45 ?11次下載
    FreeRTOS+STM32F103<b class='flag-5'>串口</b>通信錯誤<b class='flag-5'>解決方法</b>

    STM32串口環(huán)形緩沖--使用隊列實現(xiàn)(開放源碼)

    串口隊列環(huán)形緩沖區(qū)隊列串口環(huán)形緩沖的好處代碼實現(xiàn)隊列
    發(fā)表于 12-24 19:04 ?28次下載
    STM32<b class='flag-5'>串口</b><b class='flag-5'>環(huán)形</b>緩沖--使用<b class='flag-5'>隊列</b>實現(xiàn)(開放源碼)

    基于STM32的串口環(huán)形隊列IAP調(diào)試心得

    使用環(huán)形隊列,簡單點說就是個環(huán)形數(shù)組,一邊接收上位機數(shù)據(jù),一邊往flash里面寫。
    發(fā)表于 02-08 15:22 ?5次下載
    基于STM32的<b class='flag-5'>串口</b><b class='flag-5'>環(huán)形</b><b class='flag-5'>隊列</b>IAP調(diào)試心得

    嵌入式環(huán)形隊列和消息隊列的實現(xiàn)

    嵌入式環(huán)形隊列和消息隊列是實現(xiàn)數(shù)據(jù)緩存和通信的常見數(shù)據(jù)結(jié)構(gòu),廣泛應(yīng)用于嵌入式系統(tǒng)中的通信協(xié)議和領(lǐng)域。
    的頭像 發(fā)表于 04-14 11:52 ?1633次閱讀

    以太網(wǎng)阻塞的常見原因與解決方法

    以太網(wǎng)阻塞的常見原因與解決方法 以太網(wǎng)阻塞是指在以太網(wǎng)中數(shù)據(jù)流量增加超過網(wǎng)絡(luò)設(shè)備處理能力的情況下,導(dǎo)致網(wǎng)絡(luò)性能下降、延遲增加、丟包率上升等問題。下面將詳細(xì)討論以太網(wǎng)阻塞的常見原因及
    的頭像 發(fā)表于 12-27 13:58 ?1402次閱讀

    嵌入式環(huán)形隊列與消息隊列的實現(xiàn)原理

    嵌入式環(huán)形隊列,也稱為環(huán)形緩沖區(qū)或循環(huán)隊列,是一種先進先出(FIFO)的數(shù)據(jù)結(jié)構(gòu),用于在固定大小的存儲區(qū)域中高效地存儲和訪問數(shù)據(jù)。其主要特點包括固定大小的數(shù)組和兩個指針(頭指針和尾指針
    的頭像 發(fā)表于 09-02 15:29 ?672次閱讀