#include "SWM341.h" #include "string.h" #include #include #include #include #include "delay.h" #define LIN_BPS 19200 #define LIN_DELAY 4000 #define CAN_BPS 125000 #define XXTEAINUSE 1 #define XXTEAENCKEYS 0x01234567,0x89ABCDEF,0x01234567,0x89ABCDEF #define XXTEADECKEYS 0xFECDBA98,0x76543210,0xFECDBA98,0x76543210 typedef struct { uint8_t red; uint8_t green; } led_t; typedef struct { led_t oiltemp; //油温指示 led_t oillevel; //油位指示 led_t waterlevel; //水位指示 led_t emerg; //应急指示 led_t power; //电源指示 led_t communicate; //通信指示 led_t outup; //出口升 led_t allup; //出入升 led_t inup; //入口升 led_t indown; //入口降 led_t outdown; //出口降 led_t alldown; //出入降 } lamp_t; extern lamp_t lamp; #define lampaon 0x0f #define lampron 0x08 #define lampgon 0x08 #define lampoff 0x00 #define OUTWATPUMP 7 #define OUTOILPUMP 6 #define OUTWALAMP0 5 #define OUTWALAMP1 4 #define OUTWATFAMN 3 #define OUTOILFAMN 2 #define OUTDNMOTOR 1 #define OUTNECCONT0 0 #define INOILLEVEL 1 #define INWATLEVEL 2 #define UPTIME 6000 #define DNTIME 3000 //#define UPTIME 3000 //#define DNTIME 2000 #define TEMPTHRE 65 #define EEPROM_ADDR 0x1A000 typedef enum {TEMP = 0xF3, HUMID = 0xF5, TEMPHOLD = 0xE3, HUMIDHOLD = 0xE5, WRUSER = 0xE6, RDUSER = 0xE7, RESET = 0xFE} i2c_cmd_t; extern CAN_RXMessage canrx, cantx; extern uint8_t CANFrameReceiveFlag, CANFrameSendFlag; extern __IO uint8_t cmd0_active, cmd1_active, cmd2_active, cmd3_active; extern void SPKInit(void); extern void SPKSet(uint8_t on, uint32_t frq); extern void DelayUs(uint32_t us); extern void UART0Init(void); extern void UART1Init(void); extern void UART2Init(void); extern void UART3Init(void); extern void CANInit(void); extern void uart0_putchar(uint8_t ch); extern void uart1_putchar(uint8_t ch); extern uint32_t uart0_getbuf(uint8_t *buf); extern void uart0_putbuf(uint8_t *buf, uint32_t len); extern uint32_t uart1_getbuf(uint8_t *buf); extern void uart1_putbuf(uint8_t *buf, uint32_t len); extern uint32_t uart2_getbuf(uint8_t *buf); extern void uart2_putbuf(uint8_t *buf, uint32_t len); extern uint32_t uart3_getbuf(uint8_t *buf); extern void uart3_putbuf(uint8_t *buf, uint32_t len); extern void KEYInit(void); extern void LEDInit(void); extern void I2C0Init(void); extern uint8_t KEYRead(void); extern uint16_t DINRead(void); extern uint16_t HTU20D_Read_Temperature_Humidity(i2c_cmd_t cmd); extern uint16_t ADCRead(uint8_t ch); extern void LampInit(void); extern void ILI9486Test(void); extern void Ws2812Lamp(uint8_t *buf, uint32_t len); extern void CAN_Setup(void); extern int CAN_SendMsg(CAN_RXMessage msg); extern unsigned char xxtea(unsigned int *v, unsigned int n, unsigned int *k, unsigned int en); extern void PCF8563_test(void); extern time_t GetBuildTime(void); extern void PCF8563_Get_Time(struct tm *Time); extern void PCF8563_Set_Time(struct tm *Time); extern void FM24V10_Test(void); extern void SPI1Init(void); extern void XT25F128B_Test(void); extern void Lin_MainPutData(uint8_t id, uint8_t *data); extern uint8_t Lin_MainGetData(uint8_t id, uint8_t *data); extern void RFM008B_GPIO_Init(void); extern void RFM008B_Init_Power(void); extern uint8_t RFM008B_Read_ID(uint16_t *cid, uint64_t *nid); extern void uart1_puts(char *str);