#ifndef __AT_H #define __AT_H #include #define WAKE_GPIO GPIOE #define WAKE_GPIO_Pin GPIO_Pin_5 // 睡眠的引脚 // AT指令状态 enum AT_Status { AT_Status_None, // 空闲 AT_Status_Using, // 使用 }; struct AT_Struct { enum AT_Status status; uint8_t result[512]; uint16_t result_length; }; // 获取AT指令返回的长度 uint16_t AT_result_length(void); // 获取AT指令返回的内容 uint8_t * AT_result(void); // 发送AT指令,二进制 void AT_Send_Bytes(uint8_t * CMD, uint16_t length); // 发送AT指令,字符串 void AT_Send_String(char * CMD); // 清空AT指令 void AT_Clear(void); // 清空AT指令返回的结果 void AT_Clear_Result(void); // 设置AT指令的状态 void AT_Set_Status(enum AT_Status status); // AT监听 void AT_Handle(void); // 日志 void Log_SendArray(uint8_t * arr, uint16_t len); void Log_SendArray_Debug(uint8_t * arr, uint16_t len); void Log_Printf(char *format, ...); void Log_Printf_Debug(char *format, ...); // 定时器 void my_timer(void); uint32_t get_time(void); uint32_t get_time_diff(uint32_t time); #endif