gateway_mcu/CH32V303-FreeRTOS/App/functionalModule/Inc/uart_dev.h

139 lines
4.1 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef FM_UART_DEV_H_
#define FM_UART_DEV_H_
#include "ch32v30x.h"
#include "HD_UART.h"
#include "comm_types.h"
#include "ring_queue.h"
#define ASCII_CHAR_BACKSPACE 0x08 /* '\b' */
#define ASCII_CHAR_CHARACTER_TABULATION 0x09 /* '\t' */
#define ASCII_CHAR_LINE_FEED 0x0A /* '\n' */
#define ASCII_CHAR_LINE_TABULATION 0x0B /* '\v' */
#define ASCII_CHAR_FORM_FEED 0x0C /* '\f' */
#define ASCII_CHAR_CARRIAGE_RETURN 0x0D /* '\r' */
typedef enum{
J01_485_INDEX = 0,
J23_485_INDEX = 1,
J45_485_INDEX = 2,
J67_485_INDEX = 3,
J8_485_INDEX = 4,
J9_485_INDEX = 5,
Lora_UART_INDEX = 6,
Su806_UART_INDEX = 7,
MCU_UART_INDEX = 8,
}uartIndex_e;
typedef struct _uartSendInfo {
uint8_t *data; //指向数据
uint16_t count; //已经发送数据字节个数
uint16_t len; //数据长度
} uartSendInfo;
/* UART 驱动数据结构对应一个uart设备 */
typedef struct _uart_device_info{
uint8_t init;
uartIndex_e uart_index;
uint32_t uart_baudrate;
RingQueue uart_ring_queue;
uartSendInfo uart_send_data;
} uart_device_info;
typedef uint32_t device_handle;
extern device_handle g_J0_handle;
extern device_handle g_J1_handle;
extern device_handle g_J2_handle;
extern device_handle g_J3_handle;
extern device_handle g_J4_handle;
extern device_handle g_J5_handle;
extern device_handle g_J6_handle;
extern device_handle g_J7_handle;
extern device_handle g_J8_handle;
extern device_handle g_J9_handle;
extern device_handle g_Mcu_handle;
extern device_handle g_Su806_handle;
extern device_handle g_Lora_handle;
uint8_t uart_dev_in_char(device_handle device);
int uart_dev_char_present(device_handle device);
void HostMcu_uartBuf_Init(int32_t rs485BufLen, int32_t loraBufLen, int32_t mcuBufLen, int32_t su806BufLen);
void SlaveMcu_uartBuf_Init(int32_t rs485BufLen, int32_t mcuBufLen);
void Init_J0_485(uint32_t baud);
void Init_J1_485(uint32_t baud);
void Init_J2_485(uint32_t baud);
void Init_J3_485(uint32_t baud);
void Init_J4_485(uint32_t baud);
void Init_J5_485(uint32_t baud);
void Init_J6_485(uint32_t baud);
void Init_J7_485(uint32_t baud);
void Init_J8_485(uint32_t baud);
void Init_J9_485(uint32_t baud);
void Init_Mcu_Uart(uint32_t baud);
void Init_Su806_Uart(uint32_t baud);
void Init_Lora_Uart(uint32_t baud);
void uartIT_Init(void);
void J0_Interrupt();
void J1_Interrupt();
void J2_Interrupt();
void J3_Interrupt();
void J4_Interrupt();
void J5_Interrupt();
void J6_Interrupt();
void J7_Interrupt();
void J8_Interrupt();
void J9_Interrupt();
// void Host_Interrupt();
// void Slave_Interrupt();
void Mcu_Interrupt();
void Su806_Interrupt();
void Lora_Interrupt();
/* 0为主mcu非0为从mcu */
extern uint8_t getMCU(void);
uint8_t getUartSendState(device_handle device);
extern void J0_485_IN_TXE(void);
extern void J1_485_IN_TXE(void);
extern void J2_485_IN_TXE(void);
extern void J3_485_IN_TXE(void);
extern void J4_485_IN_TXE(void);
extern void J5_485_IN_TXE(void);
extern void J6_485_IN_TXE(void);
extern void J7_485_IN_TXE(void);
extern void J8_485_IN_TXE(void);
extern void J9_485_IN_TXE(void);
extern void Lora_uart_IN_TXE(void);
// extern void Mcu_uart_IN_TXE(void);
extern void hostMcu_uart_IN_TXE(void);
extern void slaveMcu_uart_IN_TXE(void);
extern void Su806_uart_IN_TXE(void);
extern void J0_485_IN_IDLE(void);
extern void J1_485_IN_IDLE(void);
extern void J2_485_IN_IDLE(void);
extern void J3_485_IN_IDLE(void);
extern void J4_485_IN_IDLE(void);
extern void J5_485_IN_IDLE(void);
extern void J6_485_IN_IDLE(void);
extern void J7_485_IN_IDLE(void);
extern void J8_485_IN_IDLE(void);
extern void J9_485_IN_IDLE(void);
extern void J0_485_IN_RXNE(void);
extern void J1_485_IN_RXNE(void);
extern void J2_485_IN_RXNE(void);
extern void J3_485_IN_RXNE(void);
extern void J4_485_IN_RXNE(void);
extern void J5_485_IN_RXNE(void);
extern void J6_485_IN_RXNE(void);
extern void J7_485_IN_RXNE(void);
extern void J8_485_IN_RXNE(void);
extern void J9_485_IN_RXNE(void);
#endif