📄 serial.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 + -