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

📄 uart.h

📁 程序概述: 这是个具体产品程序
💻 H
字号:
// --------------------------------------------------------------------------
// UART.h
// --------------------------------------------------------------------------


#ifndef __UART_H__
#define __UART_H__

/*----------------------------------------------------------------------------+
| Constant Definition                                                         |
+----------------------------------------------------------------------------*/
// 24MHz & SMOD = 3, SM2 = 1
#define UART_RATE9600   0xF3			// 定义波特率9600bps

/*----------------------------------------------------------------------------+
| Type Definition & Macro                                                     |
+----------------------------------------------------------------------------*/
#define MAX_FRAME_LENGTH  8				// 每一帧数据中的有效数据的长度

// 定义帧结构体
typedef struct
{
	BYTE Addr[4];						// 地址,4个字节,对分机的通信:[0x00][楼栋][楼层][房号],对门口机的通信:[0x00][楼栋][0x00][单元]
	BYTE nLength;						// 数据长度,只包含有效数据的长度
	BYTE aData[MAX_FRAME_LENGTH+1];		// 有效数据+接收到的校验和,校验和为前面地址、长度、方向以及数据的总校验和
}t_Frame;

// 定义存放帧数据的联合体
typedef union
{
	t_Frame Frame;
	BYTE aData[sizeof(t_Frame)];
} FRAME, *pFRAME;

/*----------------------------------------------------------------------------+
| Global Variables                                                            |
+----------------------------------------------------------------------------*/
extern idata FRAME RxFrame;				// 接收数据帧缓冲
extern idata FRAME TxFrame;				// 发送数据帧缓冲
extern data BYTE  RxFrameLength;		// 接收到的数据帧的长度
extern data BYTE  TxFrameLength;		// 要发送的数据帧的长度,不包括校验和以及帧结束字节

/*----------------------------------------------------------------------------+
| Function Prototype                                                          |
+----------------------------------------------------------------------------*/
void InitUART(void);
void RS485AckCancelCommand(void);
void RS485SendCancelCommand(void);
void RS485SendTxFrame(void);

#if 0
void RS485SendByte(BYTE aData);
void RS485SendBuffer(BYTE *pSource, BYTE nLength);
void RS232SendByte(BYTE bData);
#endif

/*----------------------------------------------------------------------------+
| End of header file                                                          |
+----------------------------------------------------------------------------*/
#endif // __UART_H__
/*------------------------ Nothing Below This Line --------------------------*/

⌨️ 快捷键说明

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