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

67 lines
2.0 KiB
C
Raw 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"
/* 是否使用中断发送后期可能改为DMA发送 */
#define UARTINTERRUPTSEND
#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{
J1_485_INDEX = 6,
J2_485_INDEX = 7,
J3_485_INDEX = 2,
J4_485_INDEX = 8,
J5_0_485_INDEX = 3,
Upward_UART_INDEX = 5,
}uartIndex_e;
typedef struct _uartSendInfo {
uint8_t *data; //指向数据
#ifdef UARTINTERRUPTSEND
uint16_t count; //已经发送数据字节个数
uint16_t len; //数据长度
#endif
}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_J1_uart6_handle;
extern device_handle g_J2_uart7_handle;
extern device_handle g_J3_usart2_handle;
extern device_handle g_J4_uart8_handle;
extern device_handle g_J5_0_usart3_handle;
extern device_handle g_Upward_uart5_handle;
uint8_t uart_dev_in_char(device_handle device);
int uart_dev_char_present(device_handle device);
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_0_485(uint32_t baud);
void Init_Upward_uart(uint32_t baud);
#ifdef UARTINTERRUPTSEND
uint8_t uartInterruptSend(device_handle device, uint8_t *data, uint16_t len);
#endif
#endif