• 大小: 27.65MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-15
  • 语言: 其他
  • 标签:

资源简介

匿名地面站6.5版本传输协议,第六版本可用,包括详细的C文件以及头文件,本人已经全部测试完毕可以使用,相关说明可以查阅本人博客或私聊,如果你下载以后使用出现问题,可私聊解决

资源截图

代码片段和文件信息

#include “ANO_DT.h“
#include “mpu6050.h“
#include “flight_control.h“
#include “24l01.h“
#include “HCSR04.h“
#include “usart.h“
#include “stm32f10x_usart.h“
#include “kalman.h“
#include “stmflash.h“
#include “adc.h“
#include “debug_para.h“
/////////////////////////////////////////////////////////////////////////////////////
//数据拆分宏定义,在发送大于1字节的数据类型时,比如int16、float等,需要把数据拆分成单独字节进行发送
#define BYTE0(dwTemp)       ( *( (char *)(&dwTemp)    ) )
#define BYTE1(dwTemp)       ( *( (char *)(&dwTemp) + 1) )
#define BYTE2(dwTemp)       ( *( (char *)(&dwTemp) + 2) )
#define BYTE3(dwTemp)       ( *( (char *)(&dwTemp) + 3) )


dt_flag_t f;            //需要发送数据的标志
u8 data_to_send[50];    //发送数据缓存
extern float motor_duty[4];
extern struct PID_parameter PID_pitch ;  //姿态角PID
extern struct PID_parameter PID_roll;
extern struct PID_parameter PID_yaw;

extern struct PID_parameter PID_gyro_x;  //角速度PID
extern struct PID_parameter PID_gyro_y;
extern struct PID_parameter PID_gyro_z;

extern float accel[3];

extern struct PID_parameter PID_height;  //高度PID

extern struct Kalman_data kalman_accel_x ;     //三轴的加速度卡尔曼滤波数据(从左到右为last_p Q R output)
extern struct Kalman_data kalman_accel_y ;
extern struct Kalman_data kalman_accel_z ;

extern struct Attitude_int offset;     //四旋翼静态的时候6050测得的数据
extern struct Attitude_float attitude;   //四旋翼当前的姿态数据

extern float Power_V;

extern struct debug_data debug;

/////////////////////////////////////////////////////////////////////////////////////
//Data_Exchange函数处理各种数据发送请求,比如想实现每5ms发送一次传感器数据至上位机,即在此函数内实现
//此函数应由用户每1ms调用一次
void ANO_DT_Data_Exchange(void)
{
    static u8 cnt = 0;
    static u8 senser_cnt    = 10;
    static u8 status_cnt    = 15;
    static u8 motopwm_cnt   = 20;
static u8 udata_cnt = 25;
    static u8 power_cnt     = 50; //计量值用来确定数据传输频率
    
    if((cnt % senser_cnt) == (senser_cnt-1))
        f.send_senser = 1;  

    if((cnt % status_cnt) == (status_cnt-1))
        f.send_status = 1;  
    
    if((cnt % motopwm_cnt) == (motopwm_cnt-1))
        f.send_motopwm = 1; 
    
if((cnt % udata_cnt) == (udata_cnt-1))
f.udata =1;
    if((cnt % power_cnt) == (power_cnt-1))
        f.send_power = 1; //到达计数值,标志位置一
    
    cnt++;

/////////////////////////////////////////////////////////////////////////////////////
    if(f.send_status)//传输UAV当前状态、姿态角、高度
    {
        f.send_status = 0;
        ANO_DT_Send_Status(attitude.roll attitude.pitch attitude.yaw attitude.height21);
    }   
/////////////////////////////////////////////////////////////////////////////////////
    else if(f.send_senser)//传输传感器数据6050和磁力计等数据
    {
        f.send_senser = 0;
        ANO_DT_Send_Senser(debug.temp_duty_Kd*100 debug.temp_duty_Kp*100 debug.angleattitude.gyro_xattitude.gyro_yattitude.gyro_zaccel[0]accel[1]accel[2]);
    }   
  else if(f.udata)
{
f.udata=0;
ANO_DT_Send_Udata(000000000);
}
////////////////////////////////

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1344  2019-04-10 21:43  ANO_DT.h
     文件    71262208  2018-11-21 00:04  ANO_TC匿名上位机V65_.exe
     文件       15907  2019-04-10 22:48  ANO_DT.c

评论

共有 条评论

相关资源