目录
- 1 软件逻辑
- 2.代码
-
- 2.1 at_command.h
- 2.2 at_command.c
本文主要用于记录纯MCU无OS下,AT 指令开发软件框架
1 软件逻辑
2.代码
2.1 at_command.h
#ifndef AT_COMMAND_H
#define AT_COMMAND_H
void AT_CMD_Process(uint8_t *uartBuffer, uint8_t dataLen);
/*描述AT指令返回值的错误原因*/
typedef enum eATEerror
{
AT_OK = 0,
AT_ERROR,
AT_PARAM_ERROR,
AT_BUSY_ERROR,
AT_TEST_PARAM_OVERFLOW,
AT_NO_NET_JOINED,
AT_RX_ERROR,
AT_NO_CLASS_B_ENABLE,
AT_DUTYCYCLE_RESTRICTED,
AT_CRYPTO_ERROR,
AT_MAX,
} ATEerror_t;
/** @brief Structure defining an AT Command */
struct ATCommand_s
{
const char *string; /*< command string, after the "AT" */
const int32_t size_string; /*< size of the command string, not including the final \0 */
ATEerror_t (*get)(const char *param); /*< =? after the string to get the current value*/
ATEerror_t (*set)(const char *param); /*< = (but not =?\0) after the string to set a value */
ATEerror_t (*run)(const char *param); /*< \0 after the string - run the command */
const char *help_string; /*< to be printed when ? after the string */
};
/* AT Command strings. Commands start with AT */
/* General commands */
#define AT_RESET "Z" // soft reset
#define AT_SOFT_VERSON "+GVER" // read soft version
#define AT_UART_BAUD "+BAUD" // get or set uart baud rate
#endif
2.2 at_command.c
#include "ch58x_AT_command.h"
#include