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

📄 serial.h

📁 功能非常完善的51串口程序包
💻 H
字号:
#include "AT89x051.H"

//*************************用户定义*********************************//
//说明:根据需要改动下列参数
#define PACKET_LEN   3			//数据包长度(字节)
#define BOUND_RATE	9600		//通讯波特率(bps)
#define CLK_FRE		11059200	//单片机晶振频率(MHz)
#define CLK_DIV		12			//时钟分频数

#define COMM_TIME   200			//数据接收间隔时间
//******************************************************************//
#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			//数据包结构
{
 uchar dat[PACKET_LEN];	//通信数据
 uchar temp[PACKET_LEN-1];//通信暂存数据
 uchar rflag;			//通讯接收标志,0为空闲,1为接收完毕,2为正在接收
 uchar tflag;			//通讯发送标志,0为空闲,1为发送完毕,2为正在发送
 uchar time;			//通讯计时,为0时为通讯超时
 uchar rcount;			//数据接收计数

 uchar len;				//发送数据长度
 uchar tcount;			//数据发送计数
 uchar *pdat;			//发送数据缓冲区指针
}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();		//通讯初始化函数
void Serial_Timer();	//数据接收计时函数
uchar Serial_GetDataState();		//接收数据状态查询函数
uchar Serial_Sent(uchar *pdat,uchar len);		//数据发送函数
uchar Serial_ValidateSent(uchar *pdat,uchar len);	//带效验位生成的发送函数


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -