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