色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

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

汽車玩家 ? 來(lái)源:?jiǎn)纹瑱C(jī)軟件工程師 ? 作者:?jiǎn)纹瑱C(jī)軟件工程師 ? 2020-01-22 09:47 ? 次閱讀

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

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

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

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

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

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

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

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

下面以使用環(huán)形隊(duì)列來(lái)解決單片機(jī)串口打印阻塞問(wèn)題為例來(lái)說(shuō)明軟件實(shí)現(xiàn)。

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

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

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

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

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

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

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

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

    關(guān)注

    68

    文章

    10901

    瀏覽量

    212664
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    389

    瀏覽量

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

    關(guān)注

    14

    文章

    1557

    瀏覽量

    76859
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    請(qǐng)問(wèn)串口接受用環(huán)形隊(duì)列,發(fā)送也能用嗎?

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

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

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

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

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

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

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

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

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

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

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

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

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

    cubeMX+STM32+Freertos 讀隊(duì)列時(shí)阻塞

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

    FreeRTOS+STM32F103串口通信錯(cuò)誤解決方法

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

    STM32串口環(huán)形緩沖--使用隊(duì)列實(shí)現(xiàn)(開(kāi)放源碼)

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

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

    使用環(huán)形隊(duì)列,簡(jiǎn)單點(diǎn)說(shuō)就是個(gè)環(huán)形數(shù)組,一邊接收上位機(jī)數(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'>隊(duì)列</b>IAP調(diào)試心得

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

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

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

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

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

    嵌入式環(huán)形隊(duì)列,也稱為環(huán)形緩沖區(qū)或循環(huán)隊(duì)列,是一種先進(jìn)先出(FIFO)的數(shù)據(jù)結(jié)構(gòu),用于在固定大小的存儲(chǔ)區(qū)域中高效地存儲(chǔ)和訪問(wèn)數(shù)據(jù)。其主要特點(diǎn)包括固定大小的數(shù)組和兩個(gè)指針(頭指針和尾指針
    的頭像 發(fā)表于 09-02 15:29 ?626次閱讀
    主站蜘蛛池模板: 久久精品久久久久 | 久久精品国产免费播高清无卡 | 中文在线观看免费网站 | 果冻传媒最新视频在线观看 | 麻豆天美国产一区在线播放 | 97人摸人人澡人人人超一碰 | 日韩欧美一区二区三区在线视频 | 饥渴难耐的浪荡艳妇在线观看 | 秋霞网在线伦理影片 | 美国69xxxx59 | 国产成人亚洲精品老王 | 亚洲日韩视频免费观看 | 91久久精品国产亚洲 | 国产精品久久久亚洲偷窥女厕 | 久久嫩草影院网站 | 暖暖视频中国在线观看免费韩国 | 亚洲 欧美 国产 综合久久 | 亚洲人成伊人成综合网久久久 | 亚洲精品无码不卡 | 色老板美国在线观看 | 好男人午夜www视频在线观看 | 精品久久久久中文字幕日本 | 黑人干肥婆 | 久久精品亚洲AV无码三区观看 | 狠狠啪在线香蕉 | 寂寞夜晚视频在线观看 | 男女一边摸一边做羞羞的事情免费 | 精品熟女少妇AV久久免费A片 | 99视频精品全部免费 在线 | 色婷婷综合久久久中文字幕 | G国产精品无马 | 亚洲精品久久无码AV片WWW | 99国内精品久久久久久久清纯 | 久久re视频这里精品09首页 | 国产AV精品一区二区三区漫画 | 国产成人高清精品免费5388密 | 夜夜狂射影院欧美极品 | 国产精品自产拍在线观看网站 | 99re久久热最新地址一 | 国产手机精品一区二区 | 日韩人妻精品久久日 |