From 9908dfd01536065ded5d3c4c38c2dfda94f6dd4c Mon Sep 17 00:00:00 2001 From: NeoZng Date: Sun, 13 Nov 2022 21:46:52 +0800 Subject: [PATCH] update doc --- HAL_N_Middlewares/Src/tim.c | 2 +- README.md | 49 +++++++++++++++++++++++------ VSCode+Ozone使用方法.md | 4 +++ application/application.md | 3 ++ assets/framework.png | Bin 0 -> 16784 bytes assets/image-20221113212616636.png | Bin 0 -> 29818 bytes assets/image-20221113212706633.png | Bin 0 -> 42522 bytes bsp/bsp.md | 10 ++++++ bsp/bsp_buzzer.c | 5 +++ bsp/bsp_buzzer.h | 1 + bsp/bsp_init.c | 16 ++++++++++ bsp/bsp_init.h | 12 +++++++ bsp/bsp_led.c | 13 +++++--- bsp/bsp_led.h | 2 ++ bsp/bsp_temperature.c | 6 +++- bsp/bsp_temperature.h | 1 + modules/algorithm/controller.h | 2 +- modules/imu/ins_task.md | 6 +++- modules/module.md | 3 ++ 19 files changed, 117 insertions(+), 18 deletions(-) create mode 100644 application/application.md create mode 100644 assets/framework.png create mode 100644 assets/image-20221113212616636.png create mode 100644 assets/image-20221113212706633.png create mode 100644 modules/module.md diff --git a/HAL_N_Middlewares/Src/tim.c b/HAL_N_Middlewares/Src/tim.c index c665bb8..79d130d 100644 --- a/HAL_N_Middlewares/Src/tim.c +++ b/HAL_N_Middlewares/Src/tim.c @@ -156,7 +156,7 @@ void MX_TIM5_Init(void) TIM_OC_InitTypeDef sConfigOC = {0}; /* USER CODE BEGIN TIM5_Init 1 */ - + /* USER CODE END TIM5_Init 1 */ htim5.Instance = TIM5; htim5.Init.Prescaler = 0; diff --git a/README.md b/README.md index 075c10a..b915b55 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ - TODO: 1. 增加SPI和I^2^C的BSP模组以便支持IST384磁力计和Oled显示屏等。 - 2. 增加segger RTT log的支持,方便调试和日志记录 + 1. 增加和module层的deteck_task配合的蜂鸣器和led闪烁配置。 - 主要功能:实现映射功能。 - 在本框架中,BSP层与cube高度耦合,对该层的修改往往需要使用cube重新生成工程。该层也是唯一允许直接出现stm32HAL库函数的代码层,**在非BSP层编写代码时,如需使用HAL_...函数,请思考是否有同功能的BSP_...函数**。 - 最简单的(如gpio)仅是对HAL库函数的封装。较为复杂的则会进行一定程度的处理(如can) @@ -49,11 +49,13 @@ - TODO: 1. 添加pub-sub(订阅-发布消息机制)的支持,以进一步隔离不同的模块完成封装。 - 2. 增加错误检测模块(官方例程中的`deteck_task`)。 - 3. 增加和PC通信协议的支持 - 4. 增加超级电容模块 - 5. 增加舵机模块 - 6. 增加单点激光模块 + 2. 增加模块离线/错误检测模块(官方例程中的`deteck_task`)。 + 3. 增加超级电容模块 + 4. 增加步进电机模块 + 5. 增加双板CAN通信模块 + 6. 增加裁判系统接收、多机通信、UI绘制模块 + 7. 增加舵机模块 + 8. 增加单点激光模块 - 主要功能:实现对设备的封装 @@ -88,8 +90,9 @@ Module层主要存放的是类型定义和实例指针数组,在该层没有 - TODO: 1. 完成麦克纳姆轮/全向轮底盘的功能 - 2. 完成发射模块 - 3. 完成云台控制模块 + 2. 完成发射应用 + 3. 完成云台控制应用 + 4. 增加机器人整车控制应用 - 主要功能:实现机器人的控制 在完成BSP层和Module层后,如果在APP层没有控制代码,则代码并无实际功能。换言之,BSP层与Module层的存在是为了APP层更简单、更合理、更易于扩展和移植。本框架的初始目标即是实现:在APP层仅需思考逻辑并用无关硬件的C语言代码实现即可完成整个机器人的控制。所有需要使用的模块和算法都在Module层提供。 @@ -116,7 +119,10 @@ ROOT:. | ├─.vscode │ launch.json # 用于VSCode插件CORTEX-DEBUG调试的配置文件 +| task.json # 启动编译的任务配置文件 │ +├─assets # markdown存放图片和外链文件夹 +| ├─application # 应用层,包括底盘控制,云台控制和发射控制 │ chassis.c │ chassis.h @@ -127,6 +133,8 @@ ROOT:. │ shoot.c │ shoot.h │ shoot.md +| robot_cmd.c +| robot_cmd.h │ ├─bsp # 板级支持包,提供对硬件的封装,将接口暴露给module层 │ bsp.md @@ -223,6 +231,27 @@ ROOT:. super_cap.h ``` -## BSP和模块介绍 +## BSP/Module/Application介绍 -在对应模块和板级支持包文件夹下。 \ No newline at end of file +在对应应用、模块和板级支持包文件夹下。 + +## 整体架构 + +### 软件分层 + +![image-20221113211942850](assets\framework.png) + +### 运行任务 + +![image-20221113212616636](assets\image-20221113212616636.png) + +### 初始化流程 + +~~~mermaid +graph TD +HAL库初始化 --> BSP初始化 --> Application初始化 --> app调用其拥有模块的初始化 --> 启动操作系统 +~~~ + +**注意,应用初始化不得放入其对应任务中,即使是在死循环前,否则可能导致一些需要定时器的任务初始化异常**。 + +APP会调用其所有的模块的初始化函数(注册函数),这是因为本框架的设计思想是任何模块在被注册(构造/初始化)之前,都是不存在的,当且仅当定义了一个模块结构体(也称实例)的时候,才有一个实体的概念。 diff --git a/VSCode+Ozone使用方法.md b/VSCode+Ozone使用方法.md index a890e47..3ca0375 100644 --- a/VSCode+Ozone使用方法.md +++ b/VSCode+Ozone使用方法.md @@ -46,6 +46,8 @@ CubeMX进行初始化 --> VSCode编写代/进行编译/简单调试 --> Ozone变 ***务必学完以上课程再开始本教程的学习。*** +> 4. 如果有可能,还应该学习:[哈佛大学公开课:计算机科学cs50](https://open.163.com/newview/movie/courseintro?newurl=%2Fspecial%2Fopencourse%2Fcs50.html)。你将会对单片机和计算机有不同的理解。 + ## 预备知识 1. 软件安装(队伍NAS和资料硬盘内提供了所有必要的依赖,安装包和插件) @@ -181,6 +183,8 @@ ITM是instrument trace macrocell指令追踪宏单元的缩写,它用于提供 Makefile就是我们要使用的构建规则文件。 > **如果你使用basic_framework,不需要重新生成代码。** + + ## VSCode编译和调试配置 diff --git a/application/application.md b/application/application.md new file mode 100644 index 0000000..d314406 --- /dev/null +++ b/application/application.md @@ -0,0 +1,3 @@ +# application + +这是application层的说明 \ No newline at end of file diff --git a/assets/framework.png b/assets/framework.png new file mode 100644 index 0000000000000000000000000000000000000000..17aba95a2db8b441090e93ceed758bf7ae52606a GIT binary patch literal 16784 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
  • 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

    %a^T>9ObucP+)G>$#O+vI(WV-tWaC)(+gm{1|z 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 literal 0 HcmV?d00001 diff --git a/bsp/bsp.md b/bsp/bsp.md index e69de29..5ba7067 100644 --- a/bsp/bsp.md +++ b/bsp/bsp.md @@ -0,0 +1,10 @@ +BSP + +这是BSP层的说明文档。 + +> TODO: +> 1. 增加SPI和I2C支持 +> 2. 增加外部中断支持 +> 3. 增加软件中断支持 +> 4. 增加硬件CRC支持 +> 5. 增加USB和虚拟串口支持 \ No newline at end of file diff --git a/bsp/bsp_buzzer.c b/bsp/bsp_buzzer.c index 340ea36..b54bb83 100644 --- a/bsp/bsp_buzzer.c +++ b/bsp/bsp_buzzer.c @@ -4,6 +4,11 @@ extern TIM_HandleTypeDef htim4; static uint8_t tmp_warning_level=0; +void buzzer_init() +{ + HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_3); +} + void buzzer_on(uint16_t psc, uint16_t pwm,uint8_t level) { if(level>tmp_warning_level) diff --git a/bsp/bsp_buzzer.h b/bsp/bsp_buzzer.h index 932d53a..c238343 100644 --- a/bsp/bsp_buzzer.h +++ b/bsp/bsp_buzzer.h @@ -3,6 +3,7 @@ #include "struct_typedef.h" +void buzzer_init(); extern void buzzer_on(uint16_t psc, uint16_t pwm,uint8_t level); extern void buzzer_off(void); diff --git a/bsp/bsp_init.c b/bsp/bsp_init.c index e69de29..ecbedeb 100644 --- a/bsp/bsp_init.c +++ b/bsp/bsp_init.c @@ -0,0 +1,16 @@ +#include "bsp_init.h" +#include "bsp_log.h" +#include "bsp_dwt.h" +#include "bsp_buzzer.h" +#include "bsp_led.h" +#include "bsp_temperature.h" + +// CAN和串口会在注册实例的时候自动初始化,不注册不初始化 +void BSPInit() +{ + DWT_Init(168); + BSP_Log_Init(); + LED_init(); + IMUTempInit(); + buzzer_init(); +} \ No newline at end of file diff --git a/bsp/bsp_init.h b/bsp/bsp_init.h index e69de29..82311ce 100644 --- a/bsp/bsp_init.h +++ b/bsp/bsp_init.h @@ -0,0 +1,12 @@ +#ifndef BSP_INIT_h +#define BSP_INIT_h + + +/** + * @brief bsp层初始化统一入口 + * + */ +void BSPInit(); + +#endif // !BSP_INIT_h + diff --git a/bsp/bsp_led.c b/bsp/bsp_led.c index a56e974..6fa11cb 100644 --- a/bsp/bsp_led.c +++ b/bsp/bsp_led.c @@ -2,12 +2,19 @@ #include "main.h" extern TIM_HandleTypeDef htim5; -static tmp_output_level=0; +static tmp_output_level = 0; + +void LED_init() +{ + HAL_TIM_PWM_Start(&htim5, TIM_CHANNEL_1); + HAL_TIM_PWM_Start(&htim5, TIM_CHANNEL_2); + HAL_TIM_PWM_Start(&htim5, TIM_CHANNEL_3); +} void aRGB_led_show(uint32_t aRGB) { static uint8_t alpha; - static uint16_t red,green,blue; + static uint16_t red, green, blue; alpha = (aRGB & 0xFF000000) >> 24; red = ((aRGB & 0x00FF0000) >> 16) * alpha; @@ -18,5 +25,3 @@ void aRGB_led_show(uint32_t aRGB) __HAL_TIM_SetCompare(&htim5, TIM_CHANNEL_2, green); __HAL_TIM_SetCompare(&htim5, TIM_CHANNEL_3, red); } - - diff --git a/bsp/bsp_led.h b/bsp/bsp_led.h index 73c8a05..2e96943 100644 --- a/bsp/bsp_led.h +++ b/bsp/bsp_led.h @@ -3,6 +3,8 @@ #include "struct_typedef.h" + +void LED_init(); extern void aRGB_led_show(uint32_t aRGB); #endif \ No newline at end of file diff --git a/bsp/bsp_temperature.c b/bsp/bsp_temperature.c index 8430726..9d07952 100644 --- a/bsp/bsp_temperature.c +++ b/bsp/bsp_temperature.c @@ -2,8 +2,12 @@ extern TIM_HandleTypeDef htim10; +void IMUTempInit() +{ + HAL_TIM_PWM_Start(&htim10, TIM_CHANNEL_1); +} + void imu_pwm_set(uint16_t pwm) { __HAL_TIM_SetCompare(&htim10, TIM_CHANNEL_1, pwm); } - diff --git a/bsp/bsp_temperature.h b/bsp/bsp_temperature.h index 8993bee..c22ca79 100644 --- a/bsp/bsp_temperature.h +++ b/bsp/bsp_temperature.h @@ -4,6 +4,7 @@ #include "stdint.h" #include "tim.h" +void IMUTempInit(); extern void imu_pwm_set(uint16_t pwm); #endif diff --git a/modules/algorithm/controller.h b/modules/algorithm/controller.h index 578a735..dcdab69 100644 --- a/modules/algorithm/controller.h +++ b/modules/algorithm/controller.h @@ -69,7 +69,7 @@ typedef struct float Output_LPF_RC; // RC = 1/omegac float Derivative_LPF_RC; - uint8_t Improve; + PID_Improvement_e Improve; //----------------------------------- // for calculating float Measure; diff --git a/modules/imu/ins_task.md b/modules/imu/ins_task.md index 54c0c31..b68bc99 100644 --- a/modules/imu/ins_task.md +++ b/modules/imu/ins_task.md @@ -1,3 +1,7 @@ # ins_task -

    neozng1@hnu.edu.cn

    \ No newline at end of file +

    neozng1@hnu.edu.cn

    + +## 硬触发流程 + +![image-20221113212706633](assets\image-20221113212706633.png) \ No newline at end of file diff --git a/modules/module.md b/modules/module.md new file mode 100644 index 0000000..a761182 --- /dev/null +++ b/modules/module.md @@ -0,0 +1,3 @@ +# module + +这是module层的说明。 \ No newline at end of file