STM32基礎知識之串列埠通訊協議

2021-10-03 03:49:35 字數 803 閱讀 3383

串列埠的硬體快取允許收發一次大小都是一位元組(比如0xaa),而由串列埠多次傳送的資料的多個位元組組成了一幀資料,這幀資料被快取在了軟體定義的乙個陣列中。

一幀資料的典型格式如下

第一次傳送的資料有時可以被作為幀頭來使用。其內容固定,被用作識別新一幀資料的開始。而中間的若干資料位元組則是使用者想要傳送的資料。幀尾則是被用來識別一幀資料的傳送結束。幀頭和幀尾占用的位元組長度根據協議的不同也有不同。資料位元組是你想傳送的內容對應的ascii碼組成的。

比如「abcd」是我想傳送的資料,查表得知abcd的ascii碼,那麼在傳送前應當把資料幀包裝為aa414243440d,接收方按順序一位元組一位元組地接收與解幀。

stm32庫函式版本的串列埠通訊協議

可以看到這個通訊協議並沒有幀頭,幀尾占用了兩個位元組。

匿名飛控的通訊協議

與上面較為簡單的通訊協議相比,這個協議增加了傳送裝置位址,接收裝置位址,功能字,資料長度和和校驗部分。其中裝置位址由使用者定義用來區別不同裝置。功能字用來區別這一幀傳輸了什麼內容。資料長度則是計算使用者實際傳輸的資料長度。最後增加了一位元組和校驗用來校驗資料。

如果想認識通訊協議的c程式實現,可參看後面的一篇文章這個是鏈結

如有錯誤還請不吝指正。

STM32之串列埠通訊

一 rs232通訊協議 1 概念 個人計算機上的通訊介面之一,由電子工業協會 electronic industries association,eia 所制定的非同步傳輸標準介面。2 電氣特性 邏輯1 mark 3v 15v 邏輯0 space 3 15v 3 介面 實現全雙工非同步通訊只需要三根...

stm32之串列埠通訊

1 首先對tx和rx進行配置 void init gpio void 2 對串列埠進行配置 3 對總中斷進行配置 4 傳送中斷 void usart1 it void 5 傳送位元組和字串 void usart sendbyte usart typedef pusartx,uint8 t ch vo...

STM32 在串列埠通訊時運用MODBUS協議

最近乙個專案用到了modbus協議,就學習了一下,這裡做一下記錄以免後續忘記。要用到modbus肯定要先知道是mobus協議,這裡呢我們就又要先理解協議的含義了。所謂的協議是什麼?就是互相之間的約定嘛,如果不讓別人知道那就是暗號。現在就來定義乙個新的最簡單協議。例如 協議 a led滅 b 報警 c...