#ifndef _UART_DEV_ #define _UART_DEV_ #include "typedef.h" #define MSG_UART_UPDATE_READY 0x1 #define MSG_UART_UPDATE_START 0x2 #define MSG_UART_UPDATE_START_RSP 0X3 #define MSG_UART_UPDATE_READ_RSP 0x4 #define PROTOCAL_SIZE 528 #define SYNC_SIZE 6 #define SYNC_MARK0 0xAA #define SYNC_MARK1 0x55 typedef union { u8 raw_data[PROTOCAL_SIZE + SYNC_SIZE]; struct { u8 mark0; u8 mark1; u16 length; u8 data[PROTOCAL_SIZE + 2]; //最后CRC16 } data; } protocal_frame_t; struct file_info { u8 cmd; u32 addr; u32 len; } __attribute__((packed)); typedef struct __update_io { u16 rx; u16 tx; u8 input_channel; //input channel选择,根据方案选择未被使用的channel u8 output_channel; //同input channel } uart_update_cfg; void uart_update_init(uart_update_cfg *cfg); void sava_uart_update_param(void); enum { CMD_UART_UPDATE_START = 0x1, CMD_UART_UPDATE_READ, CMD_UART_UPDATE_END, CMD_UART_UPDATE_UPDATE_LEN, CMD_UART_JEEP_ALIVE, CMD_UART_UPDATE_READY, CMD_UART_SEND_DATA = 0x7, CMD_UART_UI_CMD, //屏幕参数,移动速度,屏幕方向等 CMD_UART_UI_STRING, //data:"12345678" CMD_UART_UI_PIXEL_MATRIX,// 180字节像素 CMD_UART_CHECK_ONLINE, CMD_UART_SLEEP, }; u8 uart_update_tx_packet(u8 cmd, void *data, u32 addr, u16 len, u8 wait_ack); u8 uart_update_init_uart_type(); void uart_update_change_ot_time(u32 new_time); #endif