mirror of
https://gitee.com/dlmu-cone/bf_original_balance_chassis
synced 2026-07-24 11:37:45 +08:00
增加了文档,修改通信协议,更新了平衡底盘的VMC映射和五连杆解算,修复了双板通信数据结构步对齐的错误
This commit is contained in:
17
README.md
17
README.md
@@ -24,6 +24,7 @@
|
||||
> ***强烈推荐使用VSCode进行开发,Ozone进行调试。***
|
||||
|
||||
VSCode可通过Cortex-Debug利用OpenOCD进行调试,jlink/stlink/dap-link都支持,具体的使用方法和环境配置教程在[VSCode+Ozone使用方法](./VSCode+Ozone使用方法.md)中。**请使用UTF-8编码查看\&编辑此项目**。
|
||||
**此外,本项目中使用到的物理变量值均采用标准单位制**,若有特殊需求,可以通过module层的`general_def.h`添加物理量转换关系的宏。
|
||||
|
||||
- **分层**:
|
||||
|
||||
@@ -165,11 +166,11 @@ Module层主要存放的是类型定义和实例指针数组,在该层没有
|
||||
|
||||
务必为模块添加说明文档和使用范例,以及其他需要注意的事项(如果有)。
|
||||
|
||||
> **待优化:**
|
||||
> **面向对象小指南:**
|
||||
>
|
||||
> 由于C语言没有对象的概念,对于需要使用通信的module,在其.c文件下都需要保存每个实例的指针,在收到消息时遍历所有实例指针,找到收到消息的实例。这种处理方式可能会导致实时性下降,CAN接收时要遍历所有注册了CAN的实例,进入module层还需要一次遍历。用C++则可以将对象的this指针和模块的回调函数进行绑定,生成一个可调用对象然后再进行CAN的注册,使得其不需要module层的遍历。
|
||||
> 由于C语言没有对象的概念,对于需要使用通信的module,在其.c文件下都需要保存每个实例的指针,在收到消息时(发生回调)遍历所有实例指针,找到收到消息的实例。这种处理方式可能会导致实时性下降,例如CAN接收时要遍历所有注册了CAN的实例,进入module层还需要一次遍历。用C++则可以将对象的this指针和模块的回调函数进行绑定,生成一个可调用对象然后再进行CAN的注册,使得其不需要module层的遍历。
|
||||
>
|
||||
> 后续考虑在CAN instance中加入一个额外的`void*`域成员(成员变量),其内容为module层实例的地址。这样CAN收到消息时只需要遍历所有CAN instance,对于相同的模块,可以在其回调函数内部获取CAN instance的`void*`指针并通过强制类型转换cast成模块的实例结构体指针类型,从而访问特定的模块。
|
||||
> 考虑在实例中加入一个额外的`void*`域成员(成员变量),其内容为module层实例的地址。这样CAN收到消息时只需要遍历所有CAN instance,对于相同的模块,可以在其回调函数内部获取CAN instance的`void*`指针并通过强制类型转换cast成模块的实例结构体指针类型,从而访问特定的模块。
|
||||
> 这实际上是保存“对象”的parent pointer,使得实例可以访问拥有自己的实例(访问自己的父亲)。和回调函数配合,就可以防止交叉包含并为底层访问上层内容提供支持。
|
||||
|
||||
## APP层(application)
|
||||
@@ -208,6 +209,7 @@ ROOT:.
|
||||
│ VSCode+Ozone使用方法.md # 开发环境配置和前置知识介绍
|
||||
│ 修改HAL配置时文件目录的更改.md # 重新配置CubeMX时的步骤和注意事项
|
||||
│ 必须做&禁止做.md # 开发必看,规范和要求
|
||||
| 如何定位bug.md # 开发必看,快速定位bug并进行修复.还提供了一些debug典例
|
||||
|
|
||||
├─.vscode
|
||||
│ launch.json # 调试的配置文件
|
||||
@@ -217,7 +219,12 @@ ROOT:.
|
||||
├─assets # 说明文档的图片
|
||||
├─application # 应用层
|
||||
├─bsp # 板级支持包
|
||||
└─modules # 模块层
|
||||
├─modules # 模块层
|
||||
|
|
||||
├─Src #hal生成的外设初始化源文件
|
||||
├─Inc #hal生成的外设初始化头文件
|
||||
├─Drivers #hal driver和cmsis drivers
|
||||
└─Middlewares # STusb ext , rtos , segger rtt等
|
||||
```
|
||||
|
||||
## BSP/Module/Application介绍
|
||||
@@ -232,7 +239,7 @@ ROOT:.
|
||||
|
||||
### 运行任务
|
||||
|
||||

|
||||

|
||||
|
||||
### 初始化流程
|
||||
|
||||
|
||||
Reference in New Issue
Block a user