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

66 lines
1.6 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 _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使用串口1
#define PTZ_UART_422_INDEX 2 //422使用串口2
#define PTZ_UART_485_TX gpio_bit_set(GPIOD, GPIO_PIN_7)//485发送
#define PTZ_UART_485_RX gpio_bit_reset(GPIOD, GPIO_PIN_7)//485接收
extern device_handle uart_485_handle ;
extern device_handle uart_422_handle ;
extern BSP_OS_SEM ser_mutex;
//串口
//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; //该设备是否初始化准备接收数据标志
u_int8_t index; //uart设备索引012...
RingQueue uart_ring_queue; //用于维护设备的接收缓存的循环队列
BSP_OS_SEM ser_mutex;//用于锁调用发生一个字节函数
BSP_OS_SEM port_mutex;//用于所发送一个字节
BSP_OS_SEM read_mutex;//用于读串口buffer
BSP_OS_SEM sem_recv_data;//用于通知接收到数据
}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