#ifndef _UART_H_
#define _UART_H_
#include "common.h"
#include "hwinit.h"
#include "timer.h"
#define UART0_BUFF_SIZE 100 //缓存最大长度
#define UART0_RX_TIMEOUT 20/10 //1字节接收超时,20ms
typedef struct
{
uint8_t uart0_mode; //防灾是ASCII或NMEA0183格式,MODBUS是时间间隔通信
uint8_t uart0_rx_timer; //超时判断
uint8_t uart0_rx_over;
uint8_t uart0_rx_data[UART0_BUFF_SIZE] ,uart0_tx_data[UART0_BUFF_SIZE];
uint8_t uart0_rx_count; //串口接收/发送计数器
}UART0_INFO_TYPE;
//变量
extern UART0_INFO_TYPE xdata uart0_info;
enum
{
UART0_MODBUS_MODE = 0, //默认为MODBUS模式
UART0_ASCII_MODE //防灾模式
};
//函数
void UART0_ISR(void);
void uart0_tx_onebyte(unsigned char cdata);
void uart0_tx_msg(unsigned char *string);
void uart0_tx_len_msg(unsigned char *string,unsigned int len);
#ifdef DBG
void uart0_tx_len_hextoasc(unsigned char *in_buff , unsigned int buff_len);
#endif
void uart0_init (UART0_INFO_TYPE * uart0_info);
#endif |