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

📄 serial.h

📁 本程序是一个RS232转网口的。是一个透明传输的模块
💻 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 + -