gateway_mcu/CH32V303-FreeRTOS/App/tools/mcu_common.h

86 lines
2.1 KiB
C

#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