1.添加了必要的注释和readme文件以提高代码可读性和项目文档化。2.增加了按键按下时LCD屏幕显示功能

This commit is contained in:
2026-01-25 15:42:48 +08:00
parent 373b31adfd
commit 6a861cee4e
30 changed files with 2311 additions and 50645 deletions

View File

@@ -1,29 +1,70 @@
/******************************************************************************
* @file rs485.h
* @brief RS485 串口通信驱动头文件
* @details 本文件声明 RS485 通信相关接口与数据结构,支持 DMA 接收与中断接收两种模式。
* 使用 USART2收发切换通过 DE 引脚PA1控制。
* @author 阜阳师范大学物电学院
* @version V0.01
* @date 2026.1.24
* @note USARTUSART2
* TXPA2RXPA3DEPA1
* 波特率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__ */