# WaterWarm **Repository Path**: tangs-kingki/water-warm ## Basic Information - **Project Name**: WaterWarm - **Description**: V1.0 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-02-07 - **Last Updated**: 2026-02-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AT32F403ACGT7 即热式饮水机控制系统 ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![Gitee Stars](https://gitee.com/tangs-kingki/water-warm/badge/star.svg?theme=dark) ![Gitee Forks](https://gitee.com/tangs-kingki/water-warm/badge/fork.svg?theme=dark) ![Platform](https://img.shields.io/badge/platform-AT32F403ACGT7-green.svg) ![FreeRTOS](https://img.shields.io/badge/RTOS-FreeRTOS-orange.svg) ## 🚀 项目概述 **WaterWarm** 是一款基于雅特力AT32F403ACGT7微控制器的智能即热式饮水机控制系统。本项目采用先进的Cortex-M4内核处理器,结合FreeRTOS实时操作系统,实现了精准的温度控制、流量计量和智能用户交互。 **Gitee仓库**: [https://gitee.com/tangs-kingki/water-warm](https://gitee.com/tangs-kingki/water-warm) ### ✨ 核心特性 - **高性能主控**:AT32F403ACGT7,240MHz主频,256KB Flash,96KB SRAM - **实时操作系统**:FreeRTOS实现多任务调度 - **精准温控**:PID算法实现±0.5℃控温精度 - **智能交互**:4位数码管显示 + 拟人化按键设计 - **安全可靠**:多重安全保护机制(防干烧、过温保护等) - **高效加热**:1800W纳米厚膜加热管,3秒出热水 ### 🎯 应用场景 - 家用即热式饮水机 - 办公室饮水设备 - 商用饮水设备 - 智能水吧设备 ## 📖 目录 - [硬件架构](#硬件架构) - [软件架构](#软件架构) - [项目结构](#项目结构) - [快速开始](#快速开始) - [编译烧录](#编译烧录) - [配置说明](#配置说明) - [测试验证](#测试验证) - [贡献指南](#贡献指南) - [许可证](#许可证) - [技术支持](#技术支持) ## 🛠️ 硬件架构 ### 主控芯片 - **型号**:AT32F403ACGT7 (LQFP48封装) - **内核**:ARM Cortex-M4,支持DSP指令和FPU - **主频**:240MHz - **存储**:256KB Flash,96KB SRAM - **工作电压**:2.6V~3.6V ### 外设模块 | 模块 | 型号/规格 | 功能描述 | |------|-----------|----------| | 加热模块 | 纳米厚膜加热管,1800W | 快速加热,热效率≥98.5% | | 温度传感器 | DS18B20防水型 | 精准温度检测,±0.5℃精度 | | 流量传感器 | YF-S201霍尔流量计 | 脉冲计数,精确计量出水量 | | 显示模块 | TM1637 4位数码管 | 温度/水量/状态显示 | | 存储模块 | AT24C02 EEPROM | 参数存储,断电记忆 | | 水泵控制 | 微型隔膜泵,12V | 精确控制出水量 | | 蜂鸣器 | 无源蜂鸣器 | 操作提示音 | ### 电源系统 - **输入**:220V AC → 开关电源 → 18V/10A DC - **控制电源**:5V→3.3V LDO(MCU和传感器) - **加热电源**:18V DC直供加热管 - **安全设计**:高低压物理隔离,过压过流保护 ## 💻 软件架构 ### 系统架构 ``` ┌─────────────────────────────────┐ │ 应用层 (Application) │ ├─────────────────────────────────┤ │ 用户界面 │ 温度控制 │ 流量计量 │ │ 安全保护 │ 系统管理 │ 参数存储 │ ├─────────────────────────────────┤ │ 中间件层 (Middleware) │ ├─────────────────────────────────┤ │ FreeRTOS │ 通信协议 │ 算法库 │ ├─────────────────────────────────┤ │ 硬件抽象层 (HAL/BSP) │ ├─────────────────────────────────┤ │ GPIO │ ADC │ PWM │ I2C │ USART │ └─────────────────────────────────┘ ``` ### FreeRTOS任务设计 | 任务名 | 优先级 | 堆栈大小 | 功能描述 | |--------|--------|----------|----------| | UI_Task | 3 | 512B | 用户界面处理,按键扫描,显示更新 | | Temperature_Task | 4 | 1024B | 温度采集,PID控制,加热管理 | | Flow_Task | 3 | 512B | 流量计量,水泵控制,水量统计 | | Safety_Task | 5 | 256B | 安全监控,异常检测,保护动作 | | System_Task | 2 | 256B | 系统管理,参数存储,状态维护 | ## 📁 项目结构 ``` AT32F403ACGT7_WorkBench/ ├── libraries/ # 外设驱动库 │ ├── cmsis/ # CMSIS核心支持 │ └── drivers/ # AT32外设驱动 ├── middlewares/ # 中间件 │ └── FreeRTOS/ # FreeRTOS实时操作系统 ├── project/ # 工程文件 │ ├── inc/ # 头文件目录 │ │ ├── at32f403a_407_conf.h │ │ ├── at32f403a_407_int.h │ │ ├── at32f403a_407_wk_config.h │ │ ├── FreeRTOSConfig.h # FreeRTOS配置 │ │ ├── freertos_app.h # FreeRTOS应用头文件 │ │ └── wk_*.h # 各外设驱动头文件 │ ├── src/ # 源文件目录 │ │ ├── main.c # 主程序 │ │ ├── freertos_app.c # FreeRTOS任务实现 │ │ ├── wk_*.c # 各外设驱动实现 │ │ └── at32f403a_407_*.c # 系统文件 │ └── MDK_V5/ # Keil MDK工程 │ ├── AT32F403ACGT7_WorkBench.uvprojx │ ├── startup_at32f403a_407.s │ └── objects/ # 编译输出 ├── water-warm/ # 相关资源文件 ├── AT32F403ACGT7芯片手册.pdf # 芯片数据手册 ├── AT32F403ACGT7_WorkBench.ATWP # AT32 Work Bench工程 └── README.md # 项目说明文档 ``` ## 🚦 快速开始 ### 硬件准备 1. AT32F403ACGT7开发板或自定义PCB 2. SWD调试器(J-Link/ST-Link) 3. USB转串口模块(用于调试) 4. 即热式饮水机硬件模块(加热管、传感器等) ### 软件准备 1. 安装Keil MDK uVision V5或AT32 Work Bench 2. 安装ARM Compiler工具链 3. 安装对应芯片的Device Pack 4. 克隆本仓库到本地 ```bash git clone https://gitee.com/tangs-kingki/water-warm.git cd water-warm ``` ## 🔧 编译与烧录 ### 开发环境 - **IDE选项1**:Keil MDK uVision V5(推荐) - **IDE选项2**:AT32 Work Bench(图形化配置) - **编译器**:ARM Compiler V6 - **调试器**:J-Link / ST-Link / DAP-Link - **操作系统**:Windows 10/11 ### 编译步骤(Keil MDK) 1. 打开 `project/MDK_V5/AT32F403ACGT7_WorkBench.uvprojx` 2. 确保工具链配置正确(ARM Compiler) 3. 点击 `Rebuild All` 或 `F7` 编译项目 4. 检查输出窗口,确保0错误,0警告 ### 烧录步骤 1. 连接SWD调试器到开发板 2. 在Keil中点击 `Download` 或 `F8` 3. 等待烧录完成,确认校验通过 4. 复位设备或重新上电运行 ## ⚙️ 配置说明 ### 系统时钟配置 ```c // 时钟树配置(240MHz系统时钟) HSE: 8MHz → PLL ×30 → SYSCLK: 240MHz AHB: 240MHz APB1: 60MHz (定时器×2 = 120MHz) APB2: 120MHz ``` ### FreeRTOS配置 ```c // FreeRTOSConfig.h 关键配置 #define configUSE_PREEMPTION 1 // 使用抢占式调度 #define configTICK_RATE_HZ 1000 // 系统Tick频率1kHz #define configMAX_PRIORITIES 16 // 最大优先级数 #define configMINIMAL_STACK_SIZE 128 // 最小任务堆栈 #define configTOTAL_HEAP_SIZE 10240 // 堆内存大小10KB ``` ## 🧪 测试验证 ### 功能测试清单 - [ ] 系统启动和初始化 - [ ] FreeRTOS任务调度 - [ ] GPIO输入输出 - [ ] PWM加热控制 - [ ] 温度采集和显示 - [ ] 流量计量功能 - [ ] 按键响应和用户交互 - [ ] EEPROM参数存储 - [ ] 安全保护机制 - [ ] 系统稳定性(72小时连续运行) ### 性能指标 | 指标 | 规格 | 测试结果 | |------|------|----------| | 加热速度 | 25℃→99℃ ≤3秒 | | | 控温精度 | ±0.5℃ | | | 水量误差 | ≤±10ml | | | 响应时间 | 按键响应≤50ms | | | 待机功耗 | ≤1W | | | 工作温度 | 0℃-40℃ | | ## 🤝 参与贡献 ### 贡献流程 1. **Fork 本仓库** 2. **新建 Feat_xxx 分支** 3. **提交代码** 4. **新建 Pull Request** ### 代码规范 - 使用小驼峰命名法(camelCase)命名变量和函数 - 使用大驼峰命名法(PascalCase)命名类型和结构体 - 宏定义使用全大写加下划线(UPPER_CASE) - 函数注释使用Doxygen格式 - 每行代码不超过80个字符 ## 📞 技术支持 ### 工程师 - **QQ**:2472268518 ### 联系作者 - **项目维护者**:Tangs KingKi - **Gitee主页**:[https://gitee.com/tangs-kingki](https://gitee.com/tangs-kingki) - **邮箱**:2472268518@qq.com *本项目文档最后更新于:2026年2月7日*