#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数值 左摇杆 左推240 1024 右推1807 uint16_t CH2;//通道2数值 左摇杆 上推1807 1017 下推240 uint16_t CH3;//通道3数值 uint16_t CH4;//通道4数值 uint16_t CH5;//通道5数值 一按键两档 关 240 开1807 uint16_t CH6;//通道6数值 二 三挡 关 240 中1024 开1807 uint16_t CH7;//通道7数值 三 三挡 关 240 中1024 开1807 uint16_t CH8;//通道8数值 四 两档 关 240 开1807 uint16_t CH9;//通道9数值 后左 自复位 关 240 开1807 uint16_t CH10;//通道10数值 后右 自复位 关 240 开1807 uint16_t CH11;//通道11数值 uint16_t CH12;//通道12数值 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; 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 0x70F #define SBUS_KEY_MIN 0x0F0 #define SBUS_KEY_MIDDLE 0x400 //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