# XATU-Rm-RedOwl
**Repository Path**: liu-zixiang1/xatu-rm-red-owl
## Basic Information
- **Project Name**: XATU-Rm-RedOwl
- **Description**: 西安工业大学RM-赤枭战队 电控代码仓库
- **Primary Language**: C
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 4
- **Forks**: 3
- **Created**: 2024-01-06
- **Last Updated**: 2025-04-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: RoboMaster
## README
# 赤枭战队git仓库汇总:
| 仓库地址 | 仓库说明 |
|----------------------------------------------------|-----------------|
| https://gitee.com/liuxcfreddy/xatu-rm-red-owl | 赤枭战队电控代码仓库 |
| https://gitee.com/LiYuxing_666/rm_vision | 赤枭战队视觉算法仓库 |
| https://gitee.com/LiYuxing_666/sentinel_navigation | 赤枭战队哨兵机器人导航算法仓库 |
# 仓库说明以及实时动态
禁止使用任何全局自定义数据类型 使用HAL规定的uint8_t int8_t 等通用写法
(这一部分你可以通过随意的一个跳转,到HAL库函数内查看)
禁止随意使用全局变量传参,任务服务函数均不得直接从外部获得参数运算,必须要有输入输出接口
规定如下:
* 单一反馈的运算类函数值用相应的返回函数即可;
* 但是一旦涉及多个返回值或者传参,必须用结构体或者指针。进行相应的传递,不得用全局变量乱飞;
## **变量命名规则**
| 场景 | 规则 | 示例 | |
|:--------:|:------------------------------------------------------:|:------------------------:| ------------ |
| 全局变量 | 使用大写 | TEMP | |
| 函数内部 | 首字母大写首个空格加下划线 | First_TempVort | |
| 结构体形式定义名 | 固定句柄加用途 | TydedefMotoStruct | Moto按用途替换即可 |
| 结构体内元素名 | 首字母大写,每个空格加下划线 | Light_Time_Color | 注意与函数内局部变量区分 |
| 结构体名 | 仍然遵守首字母大写 | MotoStruct | |
| 宏定义名 | 全大写与下划线 | TIME_HZ | |
| 函数名 | 作用形式大写首个空格为下划线后面单词为首字母大写,如果涉及外设硬件名词遵循HAL库规则例如 TIM I2C等 | SET_MotoPowerVelum(); | |
*ps:关于变量名主要遵循这些规则,如有遗漏,随时补充*
板级驱动(bsp)由负责系统架构的同学完成
云台 底盘等等子系统的同学调用系统层同学的封装函数即可;你们本身只需要关注功能层,也就是app层;
底层驱动则由负责系统调度的同学封装与管理。
王GH 尽快做出第一版的基础框架;创建在gitee仓库,其余人可根据master的基础分支,开自己的分支,在分支里写自己的部分驱动,互相维护且不干涉;
完成差不多后我们再说合并代码的事情,但是这前提就是,底层框架得确定好。骨架没问题的前提;(BSP功能完好)我也会帮助你们维护代码整洁与部分功能;
## 软甲开发环境
按照我个人经验一下两个版本较为稳定,当然在不更改工程属性的前提下用跟高版本的软件,在自己的分支下做编程也没关系
keil5.38a
stm32 cube mx 6.9.2版本
在dev...-software文件夹内有下载链接,请尽快同步
## 库文件上传说明
如有静态依赖库文件放进`RedOwl/Algorithm/include`文件目录
例如: *.lib *.s *.a 等
## 协作基本要求
除系统架构同学之外,不得私自修改系统配置也就是 cube mx的配置文件`xxx.ioc`文件。如果对于BSP部分或者系统部分有修改需求,则应该联系架构同学,修改master主分支,随后其余人在自己的本分支拉取合并相应的修改。或者有修改,可在与管理员联系后直接修改master分支的部分设置。
不得自行操作master分支拉取其余分支,该操作仅允许管理员进行。
程序可以参考DJI官方步兵的程序示例的结构。