#ifndef __COMMON_ENUM_ #define __COMMON_ENUM_ #include "stdio.h" #include "FreeRTOS.h" #include "task.h" typedef enum { J0 = 0, J1 = 1, J2 = 2, J3 = 3, J4 = 4, J5 = 5, J6 = 6, J7 = 7, J8 = 8, J9 = 9, Lora = 10, HostMcu = 11, SlaveMcu = 12, } portEnum; /* 功能码 */ enum { SL_Function_Code_Read_Register = 0x30, /* 读寄存器数据 */ SL_Function_Code_Write_Register = 0x10, /* 写寄存器数据 */ }; /* 状态机 */ typedef enum { wait = 0, /* 串口状态机初始状态 */ startFlagSL, /* 接收到帧头 */ portSL, /* 接收到端口号 */ lengthSL, /* 接收到数据包的长度 */ endFlagSL, /* 接收到帧尾 */ } uartStateMachine; /* 2秒的节拍数 */ #define tick_2S (configTICK_RATE_HZ * 2) /* 100ms */ #define delayTick 50 #define maxdataLen 100 extern uint8_t *mcuUartRxBuffer; extern uint16_t mcuUartRxBufferIndex; extern uint8_t *J0_485RxBuffer; extern uint16_t J0_485RxBufferIndex; extern uint8_t *J1_485RxBuffer; extern uint16_t J1_485RxBufferIndex; extern uint8_t *J2_485RxBuffer; extern uint16_t J2_485RxBufferIndex; extern uint8_t *J3_485RxBuffer; extern uint16_t J3_485RxBufferIndex; extern uint8_t *J4_485RxBuffer; extern uint16_t J4_485RxBufferIndex; extern uint8_t *J5_485RxBuffer; extern uint16_t J5_485RxBufferIndex; extern uint8_t *J6_485RxBuffer; extern uint16_t J6_485RxBufferIndex; extern uint8_t *J7_485RxBuffer; extern uint16_t J7_485RxBufferIndex; extern uint8_t *J8_485RxBuffer; extern uint16_t J8_485RxBufferIndex; extern uint8_t *J9_485RxBuffer; extern uint16_t J9_485RxBufferIndex; extern uint8_t *su806RxBuffer; extern uint16_t su806RxBufferIndex; extern uint8_t *loraRxBuffer; extern uint16_t loraRxBufferIndex; extern uint32_t mcuUartRxTime; extern uint32_t su806UartRxTime; extern uartStateMachine state; extern uint16_t frameLength; uint8_t applyDataBuffer(void); uint16_t modebusCrc(uint8_t *arr_buff, uint8_t len); int baudConversionConfig(int baud); int configConversionBaud(int config); uint32_t getTickDiff(uint32_t lastTick); #endif