# 基于STM32F103开发称重 **Repository Path**: boolean_2/Weight ## Basic Information - **Project Name**: 基于STM32F103开发称重 - **Description**: No description available - **Primary Language**: C - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-24 - **Last Updated**: 2026-06-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 称重系统 基于STM32F103单片机的称重系统,包含上位机软件和下位机固件两部分。 ## 项目简介 本项目是一套完整的称重解决方案,采用STM32F103作为主控芯片,通过CAN总线实现上位机与称重传感器模块的通信。系统支持参数配置、实时重量读取、校准等功能。 ## 软件架构 ``` ├── WEIGHT_SCALE_HOST_COMPUTER/ # 上位机软件 (Qt5) │ └── HOST_COMPUTER/ │ ├── mainwindow.cpp # 主窗口,含CAN通信、设备管理 │ └── std_tool.cpp # 校准工具 │ └── weigh_scale/ # 下位机固件 (STM32F103) ├── CODE/ │ ├── MAIN/ # 主程序 │ ├── DRIVER/ # 驱动程序 │ │ ├── CS5530_driver.c # ADC称重传感器驱动 │ │ ├── can_driver.c # CAN总线驱动 │ │ ├── spi_driver.c # SPI驱动 │ │ └── led_driver.c # LED驱动 │ └── SERVICE/ # 服务层 │ └── flash_service.c # Flash存储服务 └── STDLIB/ # STM32标准库 ``` ## 功能特性 ### 上位机功能 - CAN设备连接与管理 - 多设备心跳监测与自动移除 - 实时重量数据显示 - 参数配置(K值、零点偏移、全量程设置) - 校准工具 ### 下位机功能 - CS5530高精度ADC称重传感器支持 - CAN总线通信(支持扩展帧) - 参数Flash存储 - 定时数据上报 ## CAN通信协议 | 功能码 | 说明 | |--------|------| | 0xB1 | 请求K值 | | 0xB2 | 请求零点偏移 | | 0xB3 | 请求全量程重量 | | 0xC2 | 设置K值 | | 0xC3 | 设置零点偏移 | | 0xC4 | 设置全量程重量 | | 0xC5 | 恢复默认参数 | | 0xC7 | 设置设备编号 | | 0xC8 | 设置CAN波特率 | ## 硬件要求 - STM32F103C8T6 或更高型号 - CS5530称重传感器模块 - CAN收发器(如TJA1050) - USB-CAN适配器(如周立功CAN) ## 开发环境 - 上位机:Qt 5.14.2 + MinGW 64-bit - 下位机:Keil MDK + STM32F10x StdLib ## 使用说明 ### 1. 下位机烧录 使用Keil MDK打开`weigh_scale/PROJECT/MDK/weigh_scale.uvprojx`工程,编译后烧录到STM32F103芯片。 ### 2. 上位机运行 编译Qt工程后运行`HOST_COMPUTER.exe`,连接CAN设备后即可使用。 ### 3. 参数配置 - 点击"连接CAN"按钮连接设备 - 选择对应设备编号 - 可进行K值、偏移量等参数设置 - 点击"写入参数"保存配置 ## 参与贡献 1. Fork本仓库 2. 新建功能分支 3. 提交代码 4. 发起Pull Request ## 许可证 MIT License