驅動作的事情就是協議解析算法
ACfly的光流還有TFmini的驅動,他們都有傳感器本身定義的協議。串口只是幫你保證發送一個字節的數據,傳感器的協議它是定義多個字節表明的含義!!!編碼
能夠去看我這篇博文寫的url
https://blog.csdn.net/sinat_16643223/article/details/107680515.net
mavlink3d
你以前不怎麼理解爲何有串口了爲何還要mavlink,如今應該理解, 它是基於串口之上的一個更高層的協議(並非它上面校驗位比串口更多不是的,而是必需要有這麼一個),你就算不用mavlink,也須要本身定義一個簡單的協議,這樣你才能分出你傳的哪一個是x 哪一個是y 哪一個是z 。這也是你糾結的要寫驅動的那部分,不如就用現成的協議。叫你本身寫一個這種數據的傳輸,你天然就理解爲何須要協議了。你單單串口數據發送過來這邊分不清誰是x誰是y誰是z啊對不對。你本身得弄個規則區分。視頻
那些傳感器用串口,那是由於他們本身也有基於串口之上的協議,並非單用串口就完了,只是你以前沒寫驅動不清楚這一點,昨天細看了ACfly的驅動明白了這一點。是要去看傳感器的datesheet,要去看數據包的格式。也就是協議。而後STM32這邊除了串口驅動你還須要對傳感器的協議解析,這樣才能拿到本身想要的數據。blog
因此驅動很大程度上就是協議解析,串口驅動可能還包含一些傳感器設置。因此串口也叫串口通訊協議嘛。開發
我想再多看幾個傳感器驅動是否是都是這樣,我以爲必然是這樣的,否則傳感器用串口發過來一堆數據你也分不清誰是誰。你用傳感器必然涉及到協議,嵌入式開發如此重視協議是有道理的,那幾個串口協議你確實須要去背下來。我感受你如今再去看TCPIP協議棧也會好理解得多,藍牙協議棧,我如今也清楚爲何叫電子與通訊工程,這是密不可分的。你如今再去面嵌入式的崗位我以爲才比較有底氣,你如今才真正清楚理解一些東西,你要是能早點真正啃透一個STM32工程我以爲會好些,你以爲呢。不少底層的東西你以前都沒去弄。如今再叫你去看傳感器的datesheet,你也會清晰得多。get
並且我估計你發送圖像數據視頻數據也是須要協議的,否則也是分不清的,流媒體傳輸協議,rtmp H.264編碼。固然H.264不是協議,應該是先把視頻壓縮,再傳輸。是的,沒有協議沒有規則是沒有辦法進行通訊的,讓我想起了通訊原理。io
ACfly的GPS也是這樣的嘛,你看看找包頭。
是的,協議是必不可少的。如今明白協議的重要性了。
mavlink協議關鍵也就是這部分嘛。
這也你也能夠理解協議棧怎麼造成的。
協議就是一套規則,幫你分清數據的,你也能夠本身定義本身的協議只要能夠分清數據就好
確實須要深刻學一些東西,同時作些底層開發,這些東西天然可以理解,否則你以前都不知道或者沒理解。
但凡是有通訊的地方就會有協議,能夠想一想他們重視協議不是沒有道理的。
能夠看到協議就相似於算法,它是某種規則,它是不侷限於某種語言的
。