generated from hulk/gd32e23x_template
57 lines
1.3 KiB
C
57 lines
1.3 KiB
C
//
|
|
// Created by dell on 24-12-3.
|
|
//
|
|
|
|
#ifndef RS485_H
|
|
#define RS485_H
|
|
|
|
#include "gd32e23x_it.h"
|
|
#include "gd32e23x.h"
|
|
#include "systick.h"
|
|
#include <stdio.h>
|
|
#include "ldc1612.h"
|
|
#include "tmp112.h"
|
|
#include "fwdgt.h"
|
|
#include "board_config.h"
|
|
|
|
/******************************************************************************/
|
|
|
|
#define RX_BUFFER_SIZE 32
|
|
|
|
#define PROTOCOL_PACKAGE_HEADER 0xD5
|
|
#define PROTOCOL_BOARD_TYPE 0x03
|
|
#define PROTOCOL_PACKAGE_LENGTH 0x02
|
|
|
|
/******************************************************************************/
|
|
|
|
typedef enum
|
|
{
|
|
VALIDATION_SUCCESS = 0,
|
|
VALIDATION_CRC_ERROR = 1,
|
|
VALIDATION_HEADER_ERROR = 2,
|
|
VALIDATION_TYPE_ERROR = 4,
|
|
VALIDATION_LENGTH_ERROR = 8
|
|
} validation_result_t;
|
|
|
|
/******************************************************************************/
|
|
|
|
void rs485_config(void);
|
|
|
|
void process_command(uint8_t* cmd, size_t length);
|
|
|
|
uint8_t calculate_crc(uint8_t data[], uint8_t data_length);
|
|
|
|
validation_result_t validate_package_crc(uint8_t* data, uint8_t data_length);
|
|
|
|
validation_result_t validate_package_header(uint8_t* data);
|
|
|
|
validation_result_t validate_package_type(uint8_t* data);
|
|
|
|
validation_result_t validate_data_length(uint8_t* data);
|
|
|
|
void eddy_current_value_report(void);
|
|
|
|
void tempture_value_report(void);
|
|
|
|
#endif //RS485_H
|