*我发觉不管是mavlink还是传感器驱动都是基于串口协议的一个更高层的协议!!!!!!!(没有协议没有规则是没有办法进行通信的)

 

驱动做的事情就是协议解析

 

ACfly的光流还有TFmini的驱动,他们都有传感器自己定义的协议。串口只是帮你保证发送一个字节的数据,传感器的协议它是定义多个字节代表的含义!!!

可以去看我这篇博文写的

https://blog.****.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还是传感器驱动都是基于串口协议的一个更高层的协议!!!!!!!(没有协议没有规则是没有办法进行通信的)

 

是的,协议是必不可少的。现在明白协议的重要性了。

 

*我发觉不管是mavlink还是传感器驱动都是基于串口协议的一个更高层的协议!!!!!!!(没有协议没有规则是没有办法进行通信的)

*我发觉不管是mavlink还是传感器驱动都是基于串口协议的一个更高层的协议!!!!!!!(没有协议没有规则是没有办法进行通信的)

 

 

mavlink协议关键也就是这部分嘛。

*我发觉不管是mavlink还是传感器驱动都是基于串口协议的一个更高层的协议!!!!!!!(没有协议没有规则是没有办法进行通信的)

 

 

这也你也可以理解协议栈怎么形成的。

 

协议就是一套规则,帮你分清数据的,你也可以自己定义自己的协议只要可以分清数据就好
 

确实需要深入学一些东西,同时做些底层开发,这些东西自然能够理解,不然你之前都不知道或者没理解。

 

但凡有通信的地方就会有协议,可以想想他们重视协议不是没有道理的。

 

可以看到协议就类似于算法,它是某种规则,它是不局限于某种语言的

http://mavlink.io/zh/

*我发觉不管是mavlink还是传感器驱动都是基于串口协议的一个更高层的协议!!!!!!!(没有协议没有规则是没有办法进行通信的)