# EasyCom **Repository Path**: demyli/easycom ## Basic Information - **Project Name**: EasyCom - **Description**: EasyCom:一个专注于简化串口通信模块底层初始化开发的开源项目,底层配置全集成,支持ModbusCTS控制,旨在为开发者打造高效、稳定的串口通信底层驱动解决方案。本开源项目基于STM32F407标准库,有其他平台需要的可自行移植修改。 - **Primary Language**: C - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-28 - **Last Updated**: 2026-01-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EasyCom #### 背景 因在项目中需要频繁配置或者变更移植串口相关配置,底层变量复杂的移植内容,催生了该项目。 #### 介绍 史上最强大的基于STM32F407平台、标准库的串口底层驱动![吹NB的] 史上最好用的基于STM32F407平台、标准库的串口底层驱动![吹NB的] 史上最简单的基于STM32F407平台、标准库的串口底层驱动![吹NB的] EasyCom:一个专注于简化串口通信模块底层初始化开发的开源项目,底层配置全集成,支持ModbusCTS控制,旨在为开发者打造高效、稳定的串口通信底层驱动解决方案。 本开源项目基于STM32F407标准库,有其他平台需要的可自行移植修改。 EasyUart模块 主要针对串口的初始化 发送 接收等底层功能进行封装 测试平台STM32F407 使用前需要修改相关宏定义 包括串口的TX RX CTS引脚 DMA通道等 所有参数也可以通过定义新的EasyComConfig_Typedef传入初始化函数 EasyCom_Init 若传入为NULL 则使用默认参数进行初始化如果需要相关状态。建议获取EasyComConfig全局变量后修改相关内容 接收回调函数为EasyCom_RxCallback,该函数为弱函数,应用层可自行定义,或者传入自定义回调函数指针赋值到EasyComConfig #### 软件架构 裸机程序无系统 宏定义相关变量+初始化串口信息+发送API+数据接收回调函数 #### 安装教程 1. 直接移植EasyCom.c和EasyCom.h到工程中 2. 修改h文件相关定义即可 #### 使用说明 1. 通过修改以下宏定义即可启用或关闭对应串口 ``` #define EASY_COM1_ENABLE // 串口1使能 #define EASY_COM2_ENABLE // 串口2使能 #define EASY_COM3_ENABLE // 串口3使能 #define EASY_COM4_ENABLE // 串口4使能 #define EASY_COM5_ENABLE // 串口5使能 #define EASY_COM6_ENABLE // 串口6使能 ``` 2. 通过修改其他宏定义可以修改波特率 Modbus485 CTS支持等功能 3. 相关的引脚配置、DMA和NVIC等可以通过修改宏定义,也可通过改变配置变量EasyComConfig进行配置。 #### 使用示例 1. 若通过宏定义修改,修改好后,进行初始化配置 EasyCom_Init(NULL); 2. 可在功能模块定义对应串口句柄,功能模块初始时从EasyComConfig中获取对应句柄 EasyComInfo_Typedef *debugComInfo = NULL; //获取串口信息 debugComInfo = &EasyCom_getConfig()->com3; 3. 配置回调函数 debugComInfo->RecvCallback = debug_RxCallback; 4. 发送函数使用示例 EasyCom_Send(debugComInfo, dataLen); 5. 串口接收数据回调函数示例,若需要高响应速度处理,可自行修改为在中断中处理 void debug_RxCallback(EasyComInfo_Typedef *comInfo, uint8_t *data, uint16_t len) { EasyCom_Send("I am Debug Callback!\r\n"); //更新调试串口使能时间 // 点亮接收指示灯 led_netGreenModeSet(LED_MODE_CYCLE); } 6. 普通串口应用需要在主函数中循环调用EasyCom_Poll #### 参与贡献 1. 暂无 #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)