匿名科创无人机学习心得

*1.

*飞控stm32串口5连接imu,串口五发送的指令会发送到imu中,如果是自定义的用户格式帧(比如:AA FF F1 03 01 01 01 A0 67)会先到imu,imu的串口1接stm飞控。串口2接数传,从串口1接收到的数据会通过串口二发送给数传,数传传给另一个数传,在通过USB线传输给上位机。
但是如果不是属于用户自定义的格式帧,imu会进行处理,比如飞控串口5一上电就会输出电池信息(如:AA FF 0D 04 0100 0000 6B 7F)imu会接收并处理,最后上位机得到的数据是(AA AF 0D 04 0100 0000 6B 7F)。
*

2.

.数传的一个串口一直有数据时,闪烁绿灯,当另一个口也有数据进来时,会闪烁白灯,并且两个串口收到的数据都会在上位机显示 。

3.imu会把无人机的各种信息计算出来并且发送出来,两种HID连接方式上位机 都会接收到数据,飞控的UART5发给IMU数据,IMU并不会直接通过HID转发出来,它还是按自己计算出来的数据发出来(当然这只是基本数据,不包括用户自定义数据),用户自定义数据IMU不会自己发送,只会接收到UART5传来的用户自定义数据再通过HID转发。

3.关于GPS数据的获取以及源码关于GPS的原理

	case 0x30: //GPS数据
	{
	
	for (u8 i = 0; i < 23; i++)
		{
			
			send_buffer[(*_cnt)++] = ext_sens.fc_gps.byte[i];
		}
	}
	break;

case30 里面是获取GPS数据,GPS的23个字节的数据都存储在 ext_sens.fc_gps.byte[i]函数里,这个数组里的数据是是GPS的23个字节的数据。具体每个字节数据的含义要看匿名协议手册。获取到send_buffer里面在后面的程序会通过串口5发送给凌霄imu,这时候灯光会依据凌霄imu的0x30的数据来变化,如果数据一直是空的,那么灯光闪红色,如果数据是有的,那么指示灯亮绿色说明GPS工作正常。如果没有0x30类的数据帧发送给凌霄imu,那么说明GPS无效,指示灯亮白色,说明没有接入GPS。

用自己的方法直接在0X30处发送数据,如下:

case 0x30: //GPS数据
	{
	u8 cnt=0;
	u8 datasend[100];
	datasend[cnt++]=0xAA;
	datasend[cnt++]=0xFF;
	datasend[cnt++]=0x30;
	datasend[cnt++]=0;		
	for (u8 i = 0; i < 23; i++)
		{
			datasend[cnt++]=ext_sens.fc_gps.byte[i];
			//send_buffer[(*_cnt)++] = ext_sens.fc_gps.byte[i];
		}
	
	datasend[3]=cnt-4;
	u8 ac=0;
	u8 sc=0;
	for(u8 i=0;i<cnt;i++)
	{
		sc+=datasend[i];
		ac+=sc;
	}
	datasend[cnt++]=sc;
	datasend[cnt++]=ac;
	DrvUart5SendBuf(datasend, cnt);
	}

与上面是一样的效果,只是串口五提前发送给了凌霄imu.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值