⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart.h

📁 用单片机做的PWM可变的控制LED亮度的小软件
💻 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 + -