FluxDC/components/FluxUart/FluxUart.h

62 lines
1.2 KiB
C
Raw Normal View History

2025-03-11 18:55:34 +08:00
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/uart.h"
#include "driver/gpio.h"
#include "sdkconfig.h"
#include "esp_log.h"
/* UART */
/* UART1 RT-2 TX-1*/
/* UART2 RT-46 TX-45*/
#define ECHO_TEST_TXD2 (45)
#define ECHO_TEST_RXD2 (46)
#define ECHO_UART_PORT_NUM2 (UART_NUM_2)
#define ECHO_TEST_TXD1 (1)
#define ECHO_TEST_RXD1 (2)
#define ECHO_UART_PORT_NUM1 (UART_NUM_1)
#define ECHO_TEST_RTS (UART_PIN_NO_CHANGE)
#define ECHO_TEST_CTS (UART_PIN_NO_CHANGE)
#define ECHO_UART_BAUD_RATE (9600)
#define ECHO_TASK_STACK_SIZE (16*1024)
/*ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD> Modbus-RTUͨѶ<CDA8><D1B6><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>*/
#define BIG_ENDIAN_USED 0
#define LITTLE_ENDIAN_USED !BIG_ENDIAN_USED
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ַ*/
#define FLUX_ADDR 0x01
#define FLUX_FUNC_READ 0x03
#define FLUX_FUNC_SET 0x16
/*Modbus-RTU֡<55><D6A1>ʽ */
/*ʪʽ<CAAA><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݾ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>*/
/*
ADDR : 1byte
FUNC : 1byte
DATA : 2byte
CRC : 2byte
*/
struct ModbusRTU_Frame
{
unsigned char ADDR;
unsigned char FUNC;
unsigned char DATA[2];
unsigned char CRC[2];
};
2025-03-11 18:55:34 +08:00
/*<2A><><EFBFBD><EFBFBD>1<EFBFBD><31>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>*/
void uart1_echoTask(void);
/*<2A><><EFBFBD><EFBFBD>2<EFBFBD><32>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>*/
void uart2_echoTask(void);
/*CRC16У<36><D0A3>*/
unsigned short CRC16(unsigned char* pchMsg, unsigned short wDataLen);