?? serial.h
字號(hào):
#include "AT89x051.H"
//*************************用戶定義*********************************//
//說明:根據(jù)需要改動(dòng)下列參數(shù)
#define PACKET_LEN 3 //數(shù)據(jù)包長度(字節(jié))
#define BOUND_RATE 9600 //通訊波特率(bps)
#define CLK_FRE 11059200 //單片機(jī)晶振頻率(MHz)
#define CLK_DIV 12 //時(shí)鐘分頻數(shù)
#define COMM_TIME 200 //數(shù)據(jù)接收間隔時(shí)間
//******************************************************************//
#if (256-(CLK_FRE/(BOUND_RATE*16*CLK_DIV)))>0
#define BOUND_RATE_DOUBLE
#endif
#define uchar unsigned char
#define uint unsigned int
typedef struct //數(shù)據(jù)包結(jié)構(gòu)
{
uchar dat[PACKET_LEN]; //通信數(shù)據(jù)
uchar temp[PACKET_LEN-1];//通信暫存數(shù)據(jù)
uchar rflag; //通訊接收標(biāo)志,0為空閑,1為接收完畢,2為正在接收
uchar tflag; //通訊發(fā)送標(biāo)志,0為空閑,1為發(fā)送完畢,2為正在發(fā)送
uchar time; //通訊計(jì)時(shí),為0時(shí)為通訊超時(shí)
uchar rcount; //數(shù)據(jù)接收計(jì)數(shù)
uchar len; //發(fā)送數(shù)據(jù)長度
uchar tcount; //數(shù)據(jù)發(fā)送計(jì)數(shù)
uchar *pdat; //發(fā)送數(shù)據(jù)緩沖區(qū)指針
}Packet;
#define COMM_IDLE 0
#define COMM_ACK 1
#define COMM_REING 2
#define COMM_TEING 2
#define COMM_DATA_NOTRDY 0
#define COMM_DATA_ACK 1
#define COMM_DATA_ERROR 2
#define COMM_SENT_OK 0
#define COMM_SENT_BUSY 1
void Serial_Init(); //通訊初始化函數(shù)
void Serial_Timer(); //數(shù)據(jù)接收計(jì)時(shí)函數(shù)
uchar Serial_GetDataState(); //接收數(shù)據(jù)狀態(tài)查詢函數(shù)
uchar Serial_Sent(uchar *pdat,uchar len); //數(shù)據(jù)發(fā)送函數(shù)
uchar Serial_ValidateSent(uchar *pdat,uchar len); //帶效驗(yàn)位生成的發(fā)送函數(shù)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -