找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1|回复: 0
打印 上一主题 下一主题
收起左侧

STC 单片机 完整工程文件分类

[复制链接]
跳转到指定楼层
楼主
ID:60178 发表于 2026-5-7 08:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STC 单片机 完整工程文件分类
分三大类:外设功能文件、算法工具文件、程序流程结构文件
给你按做项目标准结构整理,跟你写 T12、温控、工控程序完全对上。
一、外设功能文件(底层硬件驱动)
只管硬件干活,不负责业务逻辑

  • gpio.c / gpio.h  IO 口初始化、高低电平
  • timer.c / timer.h  定时器、中断、定时周期
  • delay.c / delay.h  毫秒、微秒延时
  • uart.c / uart.h  串口收发、打印调试
  • adc.c / adc.h  模数采集、电压温度读取
  • pwm.c / pwm.h  呼吸灯、加热 PWM、电机调速
  • key.c / key.h  独立按键、矩阵按键、长按短按
  • i2c.c / spi.c  通信总线(OLED、传感器)
  • iap.c / eeprom.c  内部 Flash 掉电保存参数
  • wdt.c  看门狗复位

二、算法 & 工具文件(计算、处理、通用函数)
只管计算、滤波、数学,不管硬件

  • pid.c / pid.h  位置式 / 增量式 PID(焊台温控核心)
  • filter.c / filter.h  均值滤波、滑动滤波、中值滤波(ADC 去抖动)
  • math.c / math.h  限幅、取绝对值、插值、归一化
  • crc.c  CRC 校验(串口通信)
  • string.c  数字转字符串、格式拼接
  • oled.c / lcd.c  屏幕驱动 + 数字显示

三、程序流程结构文件(整个项目骨架)
管运行顺序、状态逻辑、业务流程,这就是你要的「流程结构文件」

1. main.c / main.h
程序入口总骨架

  • 所有模块初始化顺序
  • 大 while 死循环主流程
  • 总调度:按键→采样→算法→控制→显示

2. system.c / system.h
系统初始化框架

  • 系统时钟配置
  • 所有外设统一初始化
  • 全局变量初始化、标志位初始化
  • 中断分组、IO 模式统一配置

3. task.c / task.h
任务调度文件
前后台架构、时间片轮询

  • 1ms 任务、10ms 任务、100ms 任务
  • 定时执行:测温、PID、扫描按键、刷新显示、休眠检测
    不用全程死卡 while,按时间分片跑流程

4. menu.c / menu.h
菜单流程文件

  • 界面切换、参数加减、光标移动
  • 菜单状态机逻辑

5. setting.c / setting.h
参数配置流程

  • 默认参数初始化
  • 参数保存到 Flash、开机读取
  • 温度默认值、PID 参数、休眠时间等

6. state.c / state.h
状态机流程文件
焊台常用 4 大状态:
待机 → 升温 → 恒温 → 休眠 → 关机
用状态机管理整个工作流程,不乱套

7. interrupt.c
中断服务汇总文件
定时器中断、串口中断、外部中断
把所有中断统一放这里,结构清晰



四、标准工程整体流程结构(从上到下)
  • system.c 系统时钟 + 全部硬件初始化
  • main.c 进入主循环
  • task.c 按时间轮询调度各个任务
  • 调用:adc 采样 → filter 滤波 → pid 计算 → pwm 输出
  • menu.c 按键触发菜单跳转
  • setting.c 读写保存参数
  • state.c 切换工作状态

五、极简一句话区分
  • 功能文件:只管硬件
  • 算法文件:只管计算
  • 流程结构文件:管先做什么、后做什么、什么时候做、状态怎么切

我可以给你搭一个 STC 标准空白工程目录结构,文件夹分层、每个文件作用写好,你直接照着新建工程就能用


STC 单片机 标准工程完整目录结构(直接照搬就能用)
适配 STC15/STC32/STC8,做焊台、温控、工控、按键菜单都通用,分层干净、条理清晰。
一、整体文件夹架构
Project├── App          【程序流程/业务逻辑层】├── Driver       【硬件外设驱动层】├── Algorithm    【算法数学工具层】├── Common       【通用基础层】├── User         【用户配置/参数层】└── main.c       程序入口
二、每层文件清单 + 每个文件作用
1. App 程序流程结构文件(骨架、业务、任务、状态)
  • app_task.c/h    任务调度:1ms/10ms/100ms 定时轮询
  • app_state.c/h   状态机:待机 / 升温 / 恒温 / 休眠 / 关机
  • app_menu.c/h    菜单界面、光标、参数切换
  • app_control.c/h 总控制逻辑:测温→PID→PWM 输出总流程

2. Driver 硬件功能驱动文件(底层外设)
  • drv_gpio.c/h    IO 初始化、高低电平
  • drv_timer.c/h   定时器、定时中断
  • drv_uart.c/h    串口收发、打印调试
  • drv_adc.c/h     ADC 采集、温度电压读取
  • drv_pwm.c/h     PWM 生成、占空比调节
  • drv_key.c/h     按键扫描、长短按
  • drv_i2c.c/h     I2C 总线(OLED / 传感器)
  • drv_oled.c/h    OLED 屏幕驱动
  • drv_eeprom.c/h  内部 Flash 参数保存
  • drv_delay.c/h   延时函数

3. Algorithm 算法 & 工具文件(计算、滤波、PID)
  • algo_pid.c/h    增量 / 位置式 PID(温控核心)
  • algo_filter.c/h 均值、滑动、中值滤波(ADC 去噪)
  • algo_math.c/h   限幅、插值、绝对值、数据换算
  • algo_crc.c/h    CRC 校验
  • algo_string.c/h 数字转字符串、格式化

4. Common 通用基础
  • common.h        全局类型定义、宏定义、常用头文件汇总
  • system_init.c/h 系统总初始化:时钟 + 所有外设一键初始化
  • interrupt.c/h   所有中断服务函数统一放这里

5. User 用户配置
  • user_setting.c/h  默认参数、PID 参数、休眠时间、出厂设置
  • user_config.h     全局宏配置:屏幕大小、温度上限、PWM 周期

三、标准程序运行流程(固定套路)
  • main.c 入口
  • 调用 system_init() 系统全部初始化
  • 进入 while (1) 主循环
  • 调用 app_task() 时间片轮询调度
  • 任务里依次跑:
    • 按键扫描
    • ADC 测温 + 滤波
    • PID 运算
    • PWM 加热输出
    • OLED 显示刷新
    • 休眠 / 状态判断
    • 参数保存读取


四、三种文件一句话区分
  • Driver 驱动文件:只管硬件干活(定时器、ADC、串口)
  • Algorithm 算法文件:只管数学计算(PID、滤波、换算)
  • App 流程结构文件:管先做啥、后做啥、什么时候做、状态怎么切

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表