111 lines
2.3 KiB
C
111 lines
2.3 KiB
C
/*
|
|
* @Author: DaMing zxm5337@163.com
|
|
* @Date: 2024-03-28 09:58:33
|
|
* @LastEditors: 张小明 zxm5337@163.com
|
|
* @LastEditTime: 2024-05-20 18:48:22
|
|
* @FilePath: \Proxi_CheckBoard\User\App\motor.h
|
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
*/
|
|
#ifndef __COMMUNICATION_H__
|
|
#define __COMMUNICATION_H__
|
|
#include "data_type_def.h"
|
|
#include "usart.h"
|
|
|
|
#define BUFFER_SIZE 256
|
|
|
|
#define TASK_DUTY 1
|
|
#define DELAY_OUT_MS 5000
|
|
#define DELAY_OUT DELAY_OUT_MS / TASK_DUTY
|
|
|
|
#define TEMPERATURE_MAX 100.0f
|
|
#define TEMPERATURE_MIN -100.0f
|
|
|
|
#define ADDR_REMOTE 0XA1
|
|
#define ADDR_LOCAL 0XB1
|
|
|
|
#define PARSE_HEAD 0X05
|
|
#define PARSE_TAIL 0X1B
|
|
|
|
#define CHECK_NUM 0XCD40
|
|
|
|
typedef enum
|
|
{
|
|
CMD_NO_PROC = 0X00,
|
|
CMD_SET_DIST,
|
|
CMD_GET_TIME,
|
|
CMD_SET_FREQ,
|
|
CMD_ZERO_DIST,
|
|
CMD_RATED_DIST,
|
|
CMD_ERR_COMDE
|
|
} cmd_e;
|
|
|
|
typedef enum
|
|
{
|
|
STATE_MOTOR_STOP = 0X00,
|
|
STATE_MOTOR_RUN,
|
|
STATE_MOTOR_NEAR,
|
|
STATE_MOTOR_FAR
|
|
} state_e;
|
|
|
|
typedef enum
|
|
{
|
|
MODE_MANUL = 0X00,
|
|
MODE_AUTO
|
|
} mode_e;
|
|
|
|
typedef struct
|
|
{
|
|
BOOL rx_flag;
|
|
BOOL tx_flag;
|
|
BOOL con_flag;
|
|
BOOL lvdt_flag;
|
|
BOOL upsend_flag;
|
|
uint8_t *tx_buf;
|
|
uint8_t *rx_buf;
|
|
uint8_t rx_index;
|
|
uint8_t addr;
|
|
uint8_t cmd;
|
|
uint16_t upsend_delay;
|
|
uint16_t upsend_count;
|
|
uint16_t reg_start;
|
|
uint16_t reg_num;
|
|
uint16_t crc;
|
|
uint16_t delay_out;
|
|
float32 distance;
|
|
float32 temperature;
|
|
UART_HandleTypeDef huart;
|
|
DMA_HandleTypeDef hdma_uart_rx;
|
|
} modbus_rtu_t;
|
|
|
|
typedef struct
|
|
{
|
|
uint8_t head;
|
|
uint8_t tail;
|
|
uint8_t lenth;
|
|
uint8_t state;
|
|
uint8_t mode;
|
|
uint8_t director;
|
|
uint8_t sn;
|
|
uint16_t step;
|
|
uint16_t run_duty;
|
|
uint16_t vol_sv;
|
|
uint16_t function;
|
|
uint16_t check;
|
|
uint16_t local_addr;
|
|
uint16_t remote_addr;
|
|
} self_parse_t;
|
|
extern cmd_e cmd_tppe;
|
|
extern uint8_t rtu_rx_buf_A[BUFFER_SIZE];
|
|
extern uint8_t rtu_rx_buf_B[BUFFER_SIZE];
|
|
extern uint8_t rtu_rx_buf_hmi[BUFFER_SIZE];
|
|
|
|
extern modbus_rtu_t modbus_rtu_A;
|
|
extern modbus_rtu_t modbus_rtu_B;
|
|
extern modbus_rtu_t modbus_rtu_hmi;
|
|
|
|
void fun_ini_modbus(modbus_rtu_t *modbus_rtu);
|
|
BOOL fun_proc_modbus(modbus_rtu_t *modbus_rtu);
|
|
void fun_com_hmi(modbus_rtu_t *modbus_rtu);
|
|
|
|
#endif
|