📄 serial.h
字号:
/*
*****************************************************************************************************
*
* File name: serial.h
*****************************************************************************************************
*/
#ifdef OS_GLOBALS
#define OS_EXT
#else
#define OS_EXT extern
#endif
/*
*****************************************************************************************************
* 宏定义
*****************************************************************************************************
*/
#define LenTxBuf 3072 //收发FIFO缓冲区长度 3*1024 = 3K
#define LenRxBuf 3072
/*
*****************************************************************************************************
* 用来当作发送缓冲区
* 将一侦数据当作一个整体放入缓冲区
*****************************************************************************************************
*/
#ifndef MAX_FRAME_SIZE
#define MAX_FRAME_SIZE 1460 //一侦最大长度,配合以太网最大长度
#endif
#ifndef FRAME_END_TIME
#define FRAME_END_TIME 20 //一侦结束时间设置 单位MS
#endif
#ifndef MAX_BUF_NUM
#define MAX_BUF_NUM 4 //最大缓冲区数量
#endif
#ifndef MAX_BUF_NUM2
#define MAX_BUF_NUM2 3 //最大缓冲区数量
#endif
typedef struct _uart_buf_
{
unsigned char statu; //状态:0:无数据,大于0:有数据
unsigned char ttl; //生存时间
unsigned int length; //长度
unsigned char buf[MAX_FRAME_SIZE]; //以太网数据最大一侦为1518-58个包头
} _UART_BUF_STRUCT_;
/*
*****************************************************************************************************
* 全局变量
*****************************************************************************************************
*/
extern unsigned int xdata Rx0_Counter; //二级缓冲区接收一侦实际长度
extern unsigned char xdata Mid_Buf[MAX_FRAME_SIZE]; //二级缓冲区,用来记录一侦是否结束,结束后存入Te2NetBuf
extern _UART_BUF_STRUCT_ xdata Te2NetBuf[MAX_BUF_NUM]; // 终端到网络
extern _UART_BUF_STRUCT_ xdata Net2TeBuf[MAX_BUF_NUM2]; // 网络到终端
extern unsigned char xdata FrameIn;
extern unsigned char xdata *inRxBuf;
extern unsigned char xdata *inRxBuf_Bak;
/*
*****************************************************************************************************
* 全局函数
*****************************************************************************************************
*/
void Uart0Init(void); //串口初始
void Uart0BufferInit(void); //串口缓冲区初始化
bit Mygetch(unsigned char xdata *ch); //从串口缓冲区读1字节数据
void PrintChar(unsigned char ch); //显示字符
void PrintCh(unsigned char ch); //内部使用,不建议用户使用。
void PrintByte(unsigned char Byte); //以十六进制格式显示1个字节数据
void PrintWord(unsigned int Word); //以十六进制格式显示1个字数据
void PrintLong(unsigned long LongWord); //以十六进制格式显示1个长字数据
void Uart0Puts(unsigned char *string);
void Uart0Putf(unsigned char code *string);
void Uart0Putsl(unsigned char *string,unsigned int length);
void Data2_Te2NetBuf(void);
void Parse_Te2NetBuf(void);
void FramePush(unsigned char *source,unsigned int length);
void FramePush2(unsigned char *source,unsigned int length);
void Parse_Net2TeBuf(void);
void SendHeart(void);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -