📄 uart.h
字号:
////////////////////////////////////////////////////////////////////////////////
// Copyright(C) Gniy.Liu RHOSON, Crop. 2007-2008
// Filename: uart.h
// Description: None
////////////////////////////////////////////////////////////////////////////////
#ifndef _USRT_H
#define _USRT_H
#ifdef _UART_C
#define UART
#else
#define UART extern
#endif
#define BAND_RATE 19200//9600
#if (_MCUTYPE_==_MCU_STC89C52_) || (_MCUTYPE_==_MCU_W79E632_)
#define RELOAD_CNT_HIGH 0xff
#define RELOAD_CNT_LOW -(OSC*12000000/BAND_RATE/32+0.5)
#elif ((_MCUTYPE_>=_MCU_M8_)&&(_MCUTYPE_<=_MCU_M1281_))
#if (_MCUTYPE_==_MCU_M8_)
#define UBRR_CONST (FOSC*1000000/BAND_RATE/16)-1
#elif ( (_MCUTYPE_==_MCU_M64_) || (_MCUTYPE_==_MCU_M1281_) )
#define UBRR0_CONST (FOSC*1000000/BAND_RATE/16)-1
#endif
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)
#endif
// USART Receiver buffer
#define RX_BUF_SIZE 24
UART BOOL g_bUartRxOk;
UART XDATA U08 rx_buf[RX_BUF_SIZE];
#if RX_BUF_SIZE<256
UART U08 rx_wr_index,rx_cnter;
#else
UART U16 rx_wr_index,rx_cnter;
#endif
// USART Transmitter buffer
#define TX_BUF_SIZE 24
UART XDATA U08 tx_buf[TX_BUF_SIZE];
#if TX_BUF_SIZE<256
UART U08 tx_wr_index,tx_rd_index,tx_cnter;
#else
UART U16 tx_wr_index,tx_rd_index,tx_cnter;
#endif
#define C_RX_TIMEOUT 5
#define C_TX_TIMEOUT 8
UART U08 g_RxTmr;
UART U08 g_TxTmr;
UART XDATA U08 g_TxBuf[12];
UART void UartInit(void);
UART U08 PutChar(U08 c);
UART void PutBuf(U08 cnt);
UART void PutStr(char flash *str);
typedef struct {
unsigned char para1;
unsigned char para2;
unsigned char para3;
}PACKAGE_CMD;
typedef struct {
unsigned char head; // head code
unsigned char length; // buffer length (1~128byte)
PACKAGE_CMD cmd; // a package may include commands(max 3bytes)
unsigned char *buf; // buffer
unsigned char sumor; // ^or logical check sum
unsigned char sumand; // +and logical check sum
unsigned char rear; // rear code
}PACKAGE_UART;
#define PACKAGE_UART_HEAD 0x00
#define PACKAGE_UART_REAR 0xff
#endif // _USRT_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -