项目简介
本项目是基于C++的步进电机锁止系统固件。借助步进电机及其驱动、霍尔编码器和连接的开关,构建了具备容错能力和强大状态监控功能的状态机。系统能在非计划事件(如失步)发生时尝试恢复,还可通过控制两个集成横杆的LED环来可视化当前状态。项目包含base
(具备基本功能)和legacy_compatibility
(支持旧中央系统)两个重要分支。
项目的主要特性和功能
- 步进电机控制:可设定步进电机的极性、旋转方向、加速度、最大速度和目标位置等参数,使电机按设定旋转。
- 状态监控与恢复:实时监控步进电机运行状态,失步等非计划事件发生时自动尝试恢复。
- LED状态可视化:控制两个各有42个LED的LED环,以不同显示效果直观展示开门、关门、故障等门锁状态。
- 错误处理:针对失步、霍尔编码器故障、步进驱动器故障等不同错误,给出警告或致命错误提示并提供解决建议。
- 依赖注入架构:固件采用依赖注入设计,避免全局变量和“externs”声明,便于理解对象依赖关系和进行单元测试。
- RTOS任务管理:将RTOS任务集成到各功能类,实现模拟量转换、霍尔编码器数据处理、LED控制、电机控制、设置管理、状态机管理和开关输入处理等功能。
安装使用步骤
编译和烧录
编译项目并将二进制文件烧录到微控制器的具体过程,可参考 compile_flash.md。
具体操作
- 安装:通过复制或下载项目的Git仓库获取代码。
- 配置:依据项目需求,配置STM32微控制器的硬件连接和相关参数。
- 编译:使用GCC等适当编译器编译项目代码,生成可执行文件。
- 部署:将生成的可执行文件部署到STM32微控制器。
- 运行:在微控制器上运行程序,通过调试器或串行通信工具观察步进电机控制效果。
注意事项
- 需根据项目需求和硬件平台,调整代码中的硬件连接和参数配置。
- 使用互斥锁时,要正确管理锁的生命周期,防止死锁或资源泄露。
- 多任务环境中,利用事件标志组或互斥锁进行任务间的同步和通信。
- 使用FreeRTOS任务管理功能时,注意任务优先级和调度策略,确保系统实时性和稳定性。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】