1.添加了必要的注释和readme文件以提高代码可读性和项目文档化。2.增加了按键按下时LCD屏幕显示功能
This commit is contained in:
@@ -1,29 +1,70 @@
|
||||
/******************************************************************************
|
||||
* @file rs485.h
|
||||
* @brief RS485 串口通信驱动头文件
|
||||
* @details 本文件声明 RS485 通信相关接口与数据结构,支持 DMA 接收与中断接收两种模式。
|
||||
* 使用 USART2,收发切换通过 DE 引脚(PA1)控制。
|
||||
* @author 阜阳师范大学物电学院
|
||||
* @version V0.01
|
||||
* @date 2026.1.24
|
||||
* @note USART:USART2
|
||||
* TX:PA2,RX:PA3,DE:PA1
|
||||
* 波特率:700000
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __RS485_H__
|
||||
#define __RS485_H__
|
||||
|
||||
|
||||
|
||||
#include "./SYSTEM/sys/sys.h"
|
||||
#include "./SYSTEM/delay/delay.h"
|
||||
|
||||
#define UART_RX_LEN (3208)
|
||||
#define UART_TX_LEN (8)
|
||||
/* ============================================================================
|
||||
* 宏定义
|
||||
* ============================================================================ */
|
||||
#define UART_RX_LEN (3208) /**< 接收缓冲区长度(字节),与 Modbus 数据帧长度一致 */
|
||||
#define UART_TX_LEN (8) /**< 发送缓冲区长度(字节) */
|
||||
|
||||
/* ============================================================================
|
||||
* 数据结构定义
|
||||
* ============================================================================ */
|
||||
|
||||
/**
|
||||
* @brief RS485 收发寄存器结构体
|
||||
* @note 用于存放一帧接收数据及发送缓存,与 Modbus 处理模块配合使用
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
volatile FlagStatus NewMessageFlag; //一帧数据接收完整
|
||||
volatile uint8_t DR[UART_RX_LEN]; //接收缓存
|
||||
volatile uint8_t TDR[UART_TX_LEN]; //发送缓存
|
||||
{
|
||||
volatile FlagStatus NewMessageFlag; /**< 新消息标志:一帧数据接收完成时置位 */
|
||||
volatile uint8_t DR[UART_RX_LEN]; /**< 接收缓存 */
|
||||
volatile uint8_t TDR[UART_TX_LEN]; /**< 发送缓存 */
|
||||
} RS485_REGISTER_TYPE;
|
||||
|
||||
extern RS485_REGISTER_TYPE RS485REG;
|
||||
extern RS485_REGISTER_TYPE RS485REG; /**< 全局 RS485 收发寄存器 */
|
||||
|
||||
/* ============================================================================
|
||||
* 函数声明
|
||||
* ============================================================================ */
|
||||
|
||||
|
||||
|
||||
void USART2_Init(void);
|
||||
/**
|
||||
* @brief RS485 初始化(DMA 接收模式)
|
||||
* @note 配置 GPIO、UART、DMA,启动 ReceiveToIdle DMA 接收。为主工作模式。
|
||||
* @retval 无
|
||||
*/
|
||||
void RS485_DMA_init(void);
|
||||
|
||||
/**
|
||||
* @brief RS485 初始化(中断接收模式)
|
||||
* @note 配置 GPIO、UART,使能 RXNE 中断接收。用于异常恢复或短帧接收。
|
||||
* @retval 无
|
||||
*/
|
||||
void RS485_init(void);
|
||||
|
||||
/**
|
||||
* @brief RS485 发送数据
|
||||
* @param ptr 待发送数据指针
|
||||
* @param len 待发送字节数
|
||||
* @note 先切换为发送(DE 高),发送完成后切回接收(DE 低)。使用阻塞方式发送。
|
||||
* @retval 无
|
||||
*/
|
||||
void RS485_SendBuff(uint8_t *ptr, uint32_t len);
|
||||
|
||||
|
||||
#endif
|
||||
#endif /* __RS485_H__ */
|
||||
|
||||
Reference in New Issue
Block a user