44 lines
763 B
C
44 lines
763 B
C
|
|
#ifndef __MX_SERIAL_CORE_H
|
||
|
|
#define __MX_SERIAL_CORE_H
|
||
|
|
#include "at32a423.h"
|
||
|
|
|
||
|
|
#define SERIAL_HEAD 0x5AA5
|
||
|
|
#define FRAME_HEAD 0XA55A
|
||
|
|
|
||
|
|
typedef enum
|
||
|
|
{
|
||
|
|
DATA_SRC_ERR,
|
||
|
|
SOF_ERR,
|
||
|
|
DATA_LEN_OVER,
|
||
|
|
FRAME_LEN_LITTLE,
|
||
|
|
CHECK_SUM_ERR,
|
||
|
|
REV_SUCCESSFUL,
|
||
|
|
}mx_frame_rev_err;
|
||
|
|
|
||
|
|
typedef enum
|
||
|
|
{
|
||
|
|
SOF_GET = 0,
|
||
|
|
TRANTYPE_GET,
|
||
|
|
DATALEN_GET,
|
||
|
|
TYPE_GET,
|
||
|
|
DATA_GET,
|
||
|
|
CHECKSUM_GET,
|
||
|
|
}mx_frame_rev_enum;
|
||
|
|
|
||
|
|
|
||
|
|
#pragma pack (1)
|
||
|
|
typedef struct
|
||
|
|
{
|
||
|
|
uint16_t sof;
|
||
|
|
uint8_t trantype;
|
||
|
|
uint16_t datalen;
|
||
|
|
uint8_t type;
|
||
|
|
uint8_t *data;
|
||
|
|
uint16_t checksum;
|
||
|
|
}mx_frame_struct;
|
||
|
|
#pragma pack ()
|
||
|
|
uint8_t mx_frame_rev(uint8_t* rev_buff, uint16_t rev_buff_len, mx_frame_struct *mx_out_frame);
|
||
|
|
uint16_t create_frame(uint8_t *out_frame_buff, uint16_t out_fram_buff_len, mx_frame_struct *mx_input_frame);
|
||
|
|
#endif
|
||
|
|
|