C#串口通信從入門到精通(27)——高速通信下解決數據處理慢的問題(20ms以內)

在這里插入圖片描述

前言

我們在開發串口通信程序時,有時候會遇到比如單片機或者傳感器發送的數據速度特別快,比如10ms、20ms發送一次,并且每次發送的數據量還比較大,如果按照常規的寫法,我們會發現接收的數據還沒處理完,新的數據又發送過來了,這就會導致處理數據滯后,軟件始終處理的不是最新的數據,本文就是來介紹如何解決高速通信下數據處理慢的問題,看完本篇文章的內容,以后遇到任何高速通信下數據處理慢的問題你都知道怎么解決,無論是串口通信、socket通信,都不是問題。

1、常規錯誤寫法

我們知道串口數據的接收,在高速通信時,發送方是一直不停的發送數據,所以我們在開發中使用被動接收數據的方式,也就是使用串口的DataReceived事件觸發來接收數據,常規的寫法如下:
在這里插入圖片描述
從上圖可知,在常規寫法中,我們是在DataReceived事件觸發來接收數據,并且接收到數據以后,然后處理數據,處理完數據然后接著接收數據,所以數據處理流程是單線程的,如下:
接收數據-》處理數據-》接收數據
那么很容易看出,處理數據的時候是會占用接收數據的時間的,這就會導致在接收的數據量特別大時,數據來不及處理。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165816.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165816.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165816.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python樹的雙親存儲結構

這種存儲結構是一種順序存儲結構,采用元素形如“[結點值,雙親結點索引]”的列表表示。通常每個結點有唯一的索引(或者偽地址),根結點的索引為0,它沒有雙親結點,其雙親結點的索引為-1。例如,所示的樹對應的雙…

123. 股票買賣的最佳時機III(2次交易)

題目 題解 class Solution:def maxProfit(self, prices: List[int]) -> int:N len(prices)# 狀態定義 dp[i][j][k]代表在第i天,被允許完成j次交易時,持有或者不持有的最大利潤。k0代表不持有,k1代表持有dp [[[0 for k in range(2)] for…

醫學生秋招攻略,面試時一定要注意這些方面!

醫學生別拖了,今年秋招已經過去一波熱度了,趕早不趕晚!在籌備第二輪秋招以及明年的春招的醫學生一定要注意以下事項。 1.清晰目標 搜集秋招訊息 一定要早點多做準備,想清楚未來的目標,是繼續深造還是就業做醫生或者是…

FileReader與URL.createObjectURL實現圖片、視頻上傳預覽

之前做圖片、視頻上傳預覽常用的方案是先把文件上傳到服務器,等服務器返回文件的地址后,再把該地址字符串賦給img或video的src屬性,這才實現所謂的文件預覽。實際上這只是文件“上傳后再預覽”,這既浪費了用戶的時間,也…

java開發合同相關

【點我-這里送書】 本人詳解 作者:王文峰,參加過 CSDN 2020年度博客之星,《Java王大師王天師》 公眾號:JAVA開發王大師,專注于天道酬勤的 Java 開發問題中國國學、傳統文化和代碼愛好者的程序人生,期待你的關注和支持!本人外號:神秘小峯 山峯 轉載說明:務必注明來源(…

集合的分類

Python內建的集合類,有有序和無序之分,還有可修改和不可修改之分。 1 有序和無序 有序是說某數據集合中的每個元素都有一個位置信息,通常用index表示,可以借助這種集合類型名和位置信息訪問集合里的某元素值,在Pytho…

【開源】基于Vue.js的用戶畫像活動推薦系統

項目編號: S 061 ,文末獲取源碼。 \color{red}{項目編號:S061,文末獲取源碼。} 項目編號:S061,文末獲取源碼。 目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、功能模塊2.1 數據中心模塊2.2 興趣標簽模塊2.3 活…

[Android]使用Git將項目提交到GitHub

如果你的Mac還沒有安裝Git,你可以通過Homebrew來安裝它: brew install git 方式一:終端管理 1.創建本地Git倉庫 在項目的根目錄下,打開終端(Terminal)并執行以下命令來初始化一個新的Git倉庫&#xff1…

vue3-組件傳參及計算屬性

?🌈個人主頁:前端青山 🔥系列專欄:Vue篇 🔖人終將被年少不可得之物困其一生 依舊青山,本期給大家帶來vue篇專欄內容:vue3-組件傳參及計算屬性 目錄 vue3中的組件傳參 1、父傳子 2、子傳父 toRef 與 toRefs vue3中…

數據結構 查找基本概念

敬請期待。。。 1. 適用于折半查找的表的存儲方式及元素排列要求為(順序方式存儲,元素有序 )。 2. 有一個按元素值排好序的順序表(長度大于2),分別用順序查找和折半查找與給定值相等的元素,比較次數分別是s和b&am…

拼接合并yuv序列轉成mp4

ffmpeg需要用支持libx264的版本,如果需要,可以從這個網站下載編譯支持libx264\x265的ffmpeg https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-6.1-essentials_build.7z #-*- coding:utf-8-*- import osif __name__ "__main__":# 1 輸入…

實例講解:在3dMax中如何使用python腳本?

如果你是Python或Maxscript的新手,你現在可以跟著這篇文章開始做一些代碼了,本文將讓我們從非常基本的東西開始學習。 如何在3dmax中獲取選定的節點并打印出它們的名稱?所有場景對象如何?我們直接看代碼: import MaxP…

Word/PPT/PDF怎么免費轉為JPG圖片?

1、打開金鳴表格文字識別網站。 2、點擊導航條上的“軟件下載” 3、安裝并打開金鳴表格文字識別軟件。 4、點擊頂部導航欄的“文件轉圖片”。 5、選擇需要轉換成圖片的文件(支持Word/PPT/PDF). 6、點“打開”程序將自動分頁轉換為圖片。

【論文閱讀筆記】Smil: Multimodal learning with severely missing modality

Ma M, Ren J, Zhao L, et al. Smil: Multimodal learning with severely missing modality[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2021, 35(3): 2302-2310.[開源] 本文的核心思想是探討和解決多模態學習中的一個重要問題:在訓練和測…

【dart線程之怎么處理異步和順序異步任務隊列】

dart線程之怎么處理異步和順序異步任務隊列 單線程的dart怎么處理異步任務的? 事件循環模型就是實現異步處理任務的核心。 關于阻塞式調用和非阻塞式調用的概念 阻塞和非阻塞關注的是程序在等待調用結果(消息、返回值)時的狀態阻塞式調用…

JS中的OOP

JS中的OOP OOP 為我們解決了什么問題?想象一下,我們希望為教師提供一個平臺,每位注冊的教師都可以提交分數,并為課程分配作業和其他內容。 如果有一個地方(在本例中是一個對象),可以訪問所有教…

Python編寫的爬蟲為什么受歡迎?

每每回想起我當初學習python爬蟲的經歷,當初遇到的各種困難險阻至今都歷歷在目。即便當初道阻且長,窮且益堅,我也從來沒有想過要放棄。今天我將以我個人經歷,和大家聊一聊有關Python語音編寫的爬蟲的事情。談一談為什么最近幾年py…

C#中的事件(委托的發布和訂閱、事件的發布和訂閱、EventHandler類、Windows事件)

目錄 一、委托的發布和訂閱 1.訂閱操作符號“"和取消訂閱操作符號“-” 2.示例源碼 二、事件的發布和訂閱 三、EventHandler類 四、Windows事件 C#中的事件是指某個類的對象在運行過程中遇到的一些特定事情,而這些特定的事情有必要通知給這個對象的使用者…

【海德教育】河北初級職稱報名條件:

河北助理工程師 學歷要求 大專畢業后滿3年,工程類專業 本科畢業后滿1年 ,工程類專業 非工程類專業,年限增加2年即可。

多線程,線程池,線程的創建,線程池的參數

文章目錄 多線程-1 高并發〇、使用多線程的場景1. 為什么使用多線程 1. 線程概述1.1 線程和進程1.2 并發和并行1.3 多線程的優勢1.4 程序運行原理1.5 主線程 1.6 線程的 6 種狀態2. 線程的創建和啟動2.1 Thread類2.2創建線程有哪幾種方法2.2.1 繼承**Thread**類,重寫…