#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 |