驅動做的事情就是協議決議
ACfly的光流還有TFmini的驅動,他們都有傳感器自己定義的協議,串口只是幫你保證發送一個位元組的資料,傳感器的協議它是定義多個位元組代表的含義!!!
可以去看我這篇博文寫的
https://blog.csdn.net/sinat_16643223/article/details/107680515
mavlink
你之前不怎么理解為什么有串口了為什么還要mavlink,現在應該理解, 它是基于串口之上的一個更高層的協議(并不是它上面校驗位比串口更多不是的,而是必須要有這么一個),你就算不用mavlink,也需要自己定義一個簡單的協議,這樣你才能分出你傳的哪個是x 哪個是y 哪個是z ,這也是你糾結的要寫驅動的那部分,不如就用現成的協議,叫你自己寫一個這種資料的傳輸,你自然就理解為什么需要協議了,你單單串口資料發送過來這邊分不清誰是x誰是y誰是z啊對不對,你自己得弄個規則區分,
那些傳感器用串口,那是因為他們自己也有基于串口之上的協議,并不是單用串口就完了,只是你之前沒寫驅動不清楚這一點,昨天細看了ACfly的驅動明白了這一點,是要去看傳感器的datesheet,要去看資料包的格式,也就是協議,然后STM32這邊除了串口驅動你還需要對傳感器的協議決議,這樣才能拿到自己想要的資料,
所以驅動很大程度上就是協議決議,串口驅動可能還包含一些傳感器設定,所以串口也叫串口通信協議嘛,
我想再多看幾個傳感器驅動是不是都是這樣,我覺得必然是這樣的,不然傳感器用串口發過來一堆資料你也分不清誰是誰,你用傳感器必然涉及到協議,嵌入式開發如此重視協議是有道理的,那幾個串口協議你確實需要去背下來,我感覺你現在再去看TCPIP協議堆疊也會好理解得多,藍牙協議堆疊,我現在也清楚為什么叫電子與通信工程,這是密不可分的,你現在再去面嵌入式的崗位我覺得才比較有底氣,你現在才真正清楚理解一些東西,你要是能早點真正啃透一個STM32工程我覺得會好些,你覺得呢,很多底層的東西你之前都沒去弄,現在再叫你去看傳感器的datesheet,你也會清晰得多,
而且我估計你發送影像資料視頻資料也是需要協議的,不然也是分不清的,流媒體傳輸協議,rtmp H.264編碼,當然H.264不是協議,應該是先把視頻壓縮,再傳輸,是的,沒有協議沒有規則是沒有辦法進行通信的,讓我想起了通信原理,
ACfly的GPS也是這樣的嘛,你看看找包頭,

是的,協議是必不可少的,現在明白協議的重要性了,


mavlink協議關鍵也就是這部分嘛,

這也你也可以理解協議堆疊怎么形成的,
協議就是一套規則,幫你分清資料的,你也可以自己定義自己的協議只要可以分清資料就好
確實需要深入學一些東西,同時做些底層開發,這些東西自然能夠理解,不然你之前都不知道或者沒理解,
但凡有通信的地方就會有協議,可以想想他們重視協議不是沒有道理的,
可以看到協議就類似于演算法,它是某種規則,它是不局限于某種語言的
http://mavlink.io/zh/

,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/158987.html
標籤:其他
