MW22-02A/BSP/Driver/usart/Usart.h

66 lines
1.6 KiB
C
Raw Normal View History

2025-05-21 01:55:40 +00:00
#ifndef _USART_H
#define _USART_H
#include "gd32f4xx.h"
#include "ring_queue.h"
#include "includes.h"
#include "comm_types.h"
#include "agent_hyt.h"
typedef u_int32_t device_handle;
#define TEST USART0
#define UART_485 USART1
#define UART_422 USART2
#define PTZ_UART_485_BUFF_SIZE 100
#define PTZ_UART_422_BUFF_SIZE 100
#define PTZ_UART_485_INDEX 1 //485ʹ<35>ô<EFBFBD><C3B4><EFBFBD>1
#define PTZ_UART_422_INDEX 2 //422ʹ<32>ô<EFBFBD><C3B4><EFBFBD>2
#define PTZ_UART_485_TX gpio_bit_set(GPIOD, GPIO_PIN_7)//485<38><35><EFBFBD><EFBFBD>
#define PTZ_UART_485_RX gpio_bit_reset(GPIOD, GPIO_PIN_7)//485<38><35><EFBFBD><EFBFBD>
extern device_handle uart_485_handle ;
extern device_handle uart_422_handle ;
extern BSP_OS_SEM ser_mutex;
//<2F><><EFBFBD><EFBFBD>
//RS422
extern u_int8_t ptz_uart_422_buff[PTZ_UART_422_BUFF_SIZE];
extern char uart_422_state ;
//RS485
extern u_int8_t ptz_uart_485_buff[PTZ_UART_485_BUFF_SIZE];
extern char uart_485_state ;
typedef struct _uart_device_info{
u_int8_t init; //<2F><><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ʼ<EFBFBD><CABC>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD>־
u_int8_t index; //uart<72><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>1<EFBFBD><31>2...
RingQueue uart_ring_queue; //<2F><><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BSP_OS_SEM ser_mutex;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽں<D6BD><DABA><EFBFBD>
BSP_OS_SEM port_mutex;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>
BSP_OS_SEM read_mutex;//<2F><><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD>buffer
BSP_OS_SEM sem_recv_data;//<2F><><EFBFBD><EFBFBD>֪ͨ<CDA8><D6AA><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
}uart_device_info;
void Usart_init_module();
void IRQHandler_485_process(u_int8_t data);
void IRQHandler_422_process(u_int8_t data);
void ptz_uart_dev_send(device_handle device, void *data, int len);
char ptz_uart_dev_in_char(device_handle device);
int ptz_uart_dev_char_present(device_handle device);
void init_term_uart();
#endif