#ifndef _BSP_H #define _BSP_H #include #include #include #include #include #include "stdbool.h" #include "cmsis_os.h" #include "can.h" #include "usart.h" #include "Motion_model.h" #include "CAT_LOG.h" /*------------SBUS 宏定义----------*/ #define SBUS_SINGLE_BUFSIZE 25 //福斯 //#define BUFFER_SIZE 2048 //大环形队列长度 //#define buffer_size 256 //小环形队列长度 #define STARTUP_DELAY_MS 3000 // PWM启动延迟时间 typedef struct { uint16_t CH1;//通道1数值 左摇杆 左推282 1002 右推1722 uint16_t CH2;//通道2数值 左摇杆 上推282 1002 下推1722 uint16_t CH3;//通道3数值 uint16_t CH4;//通道4数值 uint16_t CH5;//通道5数值 E按键3档 左 282 中间1002 右1722 uint16_t CH6;//通道6数值 F按键3档 左 282 中间1002 右1722 uint16_t CH7;//通道7数值 A 2档 关 282 开1722 uint16_t CH8;//通道8数值 B 2档 关 282 开1722 uint16_t CH9;//通道9数值 C 2档 关 282 开1722 uint16_t CH10;//通道10数值 D 2档 关 282 开1722 uint16_t CH11;//通道11数值 G 自复 左 282 中间1002 右1722 uint16_t CH12;//通道12数值 H 自复 左 282 中间1002 右1722 uint16_t CH13;//通道13数值 uint16_t CH14;//通道14数值 uint16_t CH15;//通道15数值 uint16_t CH16;//通道16数值 uint8_t ConnectState;//遥控器与接收器连接状态 0=未连接,1=正常连接 }SBUS_CH_Struct; typedef union bits { uint8_t data; struct { uint8_t bool_0 : 1;//第0位 uint8_t bool_1 : 1;//第1位 uint8_t bool_2 : 1;//第2位 uint8_t bool_3 : 1;//第3位 uint8_t bool_4 : 1;//第4位 uint8_t bool_5 : 1;//第5位 uint8_t bool_6 : 1;//第6位 uint8_t bool_7 : 1;//第7位 }Bit; }_NOM; typedef enum { PWM_STATE_DISABLED = 0, // 失能状态 PWM_STATE_STARTUP, // 启动阶段(先执行最低档抛洒) PWM_STATE_NORMAL // 正常响应档位状态 } PWM_StateTypeDef; typedef union Data_Move2_u { int8_t data_Byte[2] ; int16_t data_int16 ; }_uint2B; //共同体计算 extern LOOPRXTYPE U_RX_BUFFER[Usart_Num]; extern SBUS_CH_Struct SBUS_CH; extern _NOM Re_Bool; extern _NOM Flag_Bool; extern uint8_t RTK_Send_Flag; #define SBUS_KEY_MAX 0x6BA //1722 #define SBUS_KEY_MIN 0x11A //282 #define SBUS_KEY_MIDDLE 0x3EA //1002 //static void update_sbus(uint8_t *buf); void Recive_Handle_Usart1 (void); void Recive_Handle_Usart3 (void); void Recive_Handle_Usart4 (void); void Recive_Handle_Usart6 (void); void sbus_loopdead (void); int16_t JDZ_4_20(int16_t In_Put,int32_t AIMAX,int32_t AIMIN,int32_t SDMAX,int32_t SDMIN ); void Sbus_Can_Handle(void); void DP_Path_compression(void); void Time_Slicing(void); void Auto_Model(double time); void Path_records (void); void cs (void); void PWM_send(void); void PWM_Send_Tim(void); #endif