1、发送和接收说明
该流程图是结合我上一篇文章提供的源代码例程画出来,包含的只是主要内容,更多细节没有在流程图中呈现。
提示:我提供例程是针对初学者提供比较单一发送和接收例程(MDK-ARM和EWARM包含各自的发送和接收工程)。
(相关资料图)
而实际项目可能会:
发送和接收在一个工程
包含操作系统
发送、接收数据FIFO(队列)处理
所以,在实际项目中,请按需修改我提供的源码。
上面是我提供例程的代码,主要讲4个接口。
(1)MAVLink_SendTest
这个接口是根据自己情况进行封装函数,用于应用程序调用,这里不多说。
(2)mavlink_msg_sys_info_pack
这个函数接口主要目的:将变量信息(SysID、CompID、SysState、BatVol)打包,最终得到MAVLink_Msg这个消息包。
(3)mavlink_msg_to_send_buffer
将上一步得到的MAVLink_Msg转换成我们要发送的数据BUF缓存。
(4)MAV_USART_SendNByte
这个函数接口也是我自己根据硬件(UART)封装的,如果你是其它硬件通信,只需要封装一个类似的接口(参数具有BUF、LEN)即可。
发送数据的流程:从应用代码 -> 底层硬件(发送出去)。
如果要深入了解,可以先熟悉软件流程,再结合源代码工程,同时参看接口函数具体实现,相信你很快就明白了。
2、接收主要函数接口