首页 > 其他分享 >【STM32】寻迹小车项目复盘

【STM32】寻迹小车项目复盘

时间:2024-08-17 23:27:05浏览次数:12  
标签:功能 模块 框架 项目 寻迹 STM32 测试 复盘

寻迹小车项目复盘

前言

博主近日首次完成了一个简单的循迹小车。但让我意外的是,在我上手如此简单的项目时,我的思路却十分混乱,开发过程毫无逻辑,虽说跌跌撞撞的做出来了,但效率低下,故在做完该项目后进行复盘,以供进步

复盘简述

  • 不要沉迷造轮子!!!
  • 无思路的项目:(硬件选型)了解所用模块的功能 —> 借鉴学习并做框架(做完测试) —> 遍学遍做模块功能(做完测试) —> 组装成系统
  • 先宏观再微观:写框架—测试框架—写驱动—测试驱动—组成系统
  • 分而治之:整体于各个模块都要分开测试,测试需要由小至大

项目无思路,无大局观

不要执着于造轮子!!!

描述

在这次项目的初期,我对如何完成这个项目毫无思路,无从下手。而且后面热衷于造轮子,造又造不出来,慢慢的心态就崩溃了

复盘

在对一个项目了解的过少的时候 应:

  1. 先了解模块功能(模块功能简单的话,可以一并学习
    如:TB6612、TCRT5000、HC-05大概的原理
  2. 再学框架(看源码,学整个系统如何运行
    借鉴或思考这个系统的框架如何运行,做出来合理的架构,并测试
  3. 后“学”并“做”模块功能
    根据所学模块知识,完成bsp模块功能驱动代码,并测试
  4. 最终拼成系统

项目无架构

描述

在做项目时,我常遇到不知道该做什么,也不知当下在做什么的问题。既未知将要进行什么,又迷茫当下的意义,整个过程似乎既无宏观规划也无微观意识

复盘

重要思想

  • 先宏观再微观,由微观至宏观
    解释:先写结构先架构(宏观),再写bsp底层功能函数驱动代码(微观),由功能函数(微观)至整体系统(宏观)
  • 分而治之
    解释:整体的大系统的错难找,故,应在结构处测试宏观的正确,在每个bsp底层驱动代码处测试微观的正确。分开“治理”,就不会导致合体时系统的崩溃

下次项目改进思路

  1. 先写框架:以状态机的编程思想为例,先写fsm();的伪代码,理清系统整体运行逻辑
  2. 测试框架:以蓝牙或按键等工具,测试框架是否有BUG,能否正常进行状态的切换
  3. 再模块化编程,实现各个基本功能的代码逻辑(注意,模块化功能也可以写逻辑,写伪代码,学会拆分任务
  4. 测试功能代码:测试功能代码是否有BUG
  5. 若框架正常,模块化功能正常,则系统整体正常

模块测试由小到大!!!
按 小模块测试—>大模块测试(如:go(); —> track();)

DEBUG无思路

硬件

  • 接线问题:保证接线无误
  • 供电问题:注意模块是否供电异常
  • 模块异常:更换模块测试(建议常用模块多备几个

软件

  • 代码逻辑:善用printf与DEBUG断点调试
  • 注意是否开启对应功能(如:编码器开启、定时器开启、PWM产生开启

标签:功能,模块,框架,项目,寻迹,STM32,测试,复盘
From: https://blog.csdn.net/AbaAbaxxx_/article/details/141287394

相关文章

  • 基于STM32开发的智能停车场管理系统
    目录引言环境准备工作硬件准备软件安装与配置系统设计系统架构硬件连接代码实现系统初始化车辆检测与计数显示与状态指示Wi-Fi通信与远程监控应用场景小型停车场自动管理大型商场停车场管理系统常见问题及解决方案常见问题解决方案结论1.引言智能停车......
  • stm32 printf 重定向问题
    最终解决方案新建一个stm32_printf.h头文件,在main.c中include#ifndefSTM32_SPIDMA_MODE_STM32_PRINT_H#defineSTM32_SPIDMA_MODE_STM32_PRINT_H#include"stm32f1xx_hal.h"#include"string.h"externUART_HandleTypeDefhuart1;voidprint_f(char*str){......
  • 基于stm32智能家居
    智能家居,基于stm32f103c8t6+温湿度传感器+超声波传感器+光敏智能家居物联网的一个课题项目,然后接下来我就介绍一下我在做课设的时候,一些步骤,最后将完整代码放入最后,方便各类爱好者提出问题以及修改。主要功能通过阿里云控制继电器,在阿里云云端上面显示当前传感器数据通过连......
  • STM32F103C8T6 HAL库生成2.4G通信
    STM32F103C8T6HAL库生成2.4G通信的报告一、引言本报告旨在阐述如何使用STM32F103C8T6微控制器及其HAL库实现基于2.4GHz频段的无线通信功能,通过NRF24L01无线模块实现数据的发送与接收。本次实验主要利用了STM32CubeMX进行项目配置,并使用KeilMDK-ARM作为开发环境进行编程。......
  • 基于STM32的录音机设计
    鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)基于STM32的录音机设计1.介绍基于STM32的录音机设计是一种利用STM32微控......
  • STM32中断系统之EXTI外部中断
    文章目录前言一、中断系统1.1中断系统简介1.2中断的执行流程1.3STM32中断二、NVIC(NestedVectoredInterruptController)嵌套向量中断控制器2.1NVIC简介2.2NVIC基本结构2.3NVIC优先级分组三、EXTI(ExternInterrupt)外部中断3.1EXTI简介3.1.1支持的触发方式3.1.......
  • STM32与华为云IoTDA的上传下达
    实现了Mqtt的链接后,需要与华为云IoTDA进行属性上报、命令解析、命令应答等。需要参照华为云官网给出的API参考使用前必读_设备接入IoTDA;1.华为云函数构建1.1.设备属性上报该功能就是用于设备按产品模型中定义的格式将属性数据上报给平台,最通常的温度信息设备状态等,上报后......
  • 零基础STM32单片机编程入门(三十四) JDY-31蓝牙模块实战含源码
    文章目录一.概要二.JDY-31蓝牙模块主要性能参数三.JDY-31蓝牙模块主芯片BK3432内部框图四.BK3432参考设计五.JDY-31蓝牙模块与单片机通讯方法1.与STM32F103板子硬件连接2.JDY-31蓝牙模块AT指令介绍六.STM32单片机与JDY-31蓝牙模块通讯实验1.硬件准备2.软件工程3.软......
  • 基于STM32设计的自动充放电测试系统(局域网)(208)
    文章目录一、前言1.1项目介绍【1】项目功能介绍【2】设计实现的功能【3】项目硬件模块组成1.2设计思路【1】整体设计思路【2】ESP8266模块配置【3】上位机开发思路1.3项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】项目背......
  • 基于STM32的边缘计算实时数据处理可视化系统:嵌入式C++、 FreeRTOS、Kafka、Spring Bo
    一、项目概述本项目旨在设计并实现一个基于STM32的边缘计算实时数据处理系统。该系统能够在边缘设备端进行数据采集、预处理,并将处理后的数据实时传输到后端服务器进行进一步分析和存储。本项目主要解决以下问题:减轻后端服务器的数据处理负担,提高系统整体效率降低......