【单片机开发】智能小车工程(经验总结)

项目相关链接:
1.智能小车L298N驱动
2.智能小车寻迹驱动
3.智能小车蓝牙模块驱动
4.智能小车超声波测距驱动

(一)前言

智能小车工程终于完成了,在这个过程中我处理了无数的BUG,用学长的话来说就是让人窒息。连续七天每天在熄灯后我还要在疯狂的处理各种各样的BUG,也感谢舍友对我的包容,没有因为电机让人窒息的噪音把我暴揍一顿,嘿嘿嘿(º﹃º )。忽然发现在每天晚上不停的改代码的过程中,我感觉到的竟然不是绝望与孤独,我感觉到的是一种充实与快乐。当你改掉一个error忽然有蹦出一串errors的时候,会感觉哭笑不得,但也依然会去继续寻找直到completed。总算明白了为什么说程序员对代码是有感情的,也许在不停的DEBUG的过程就是在培养感情的过程了吧。与具体的经验相比这也许就是最珍贵的体验了吧。

下面我将从硬件和软件两个层面去总结在这个工程中我获得的一些具体的经验。

(二)经验总结

1.硬件层面

1)处理断路问题:因为电流过大,左电机的一根杜邦线出现断路。在很多情况下断路可能是无法避免的,关键在于如何及时分析得出问题所在的方法。
首先判断是芯片内部还是外部电路的问题,右路正常判断为外部问题。有六种可能 IN1 IN2 PWM out12线 L298N过载烧坏, 都换着试一遍就行了呗?。如果是芯片击穿(其实可能不大,电源只有9V),那个就再氪一次金吧,也就一顿饭的事。
2)没有焊板子的工具,接线时出现了断路
用热熔胶隔离会断路的线。
3)IO口因没有事先规划出现时钟资源的浪费。以后的工程应该通过查阅芯片手册尽量事先规划好IO口以及时钟资源的配置,避免需要重新配置的尴尬局面。
4)会独立画PCB板的重要性。在完成工程的过程中我充分体会到了根据实际情况去绘制符合条件的最简化的PCB的重要性。一块配置合理的PCB板将会给我们避免很多在接线绕线时的麻烦。也可以将后续的工作简化。按照我的理解一个优秀的嵌入式系统的工程师首先就应该具有电路,模电数电的基础。这个学期已经了电路课,所以我在完成stm32的学习后将会去学习如何绘制自己的PCB板。

2.软件层面

1)充分重视代码的可读性,将重要的说明在函数开头必须注释声明。虽然写代码时可能不太爽,但真的可以为调试代码避免很多的麻烦。不要以为自己写的代码,自己一定看的懂,过个两天自己也看不懂自己的代码了。
通过宏定义IO口进行必要的简化。
关于变量以及函数命名问题,应该尽量赋予其具体的含义,避免重复定义,也让读代码的人更容易理解。比如说用一个i计数变量,如果仅仅是在C语言课上那种小的函数当然没有问题,可是当很多函数组织在一起,这种定义明显是不够的。可以再具体一点比如HCcount,TIMcount。
关于具体的编程规范有一份具体的文件。
https://pan.baidu.com/s/1paIlV1qS45gM6oG1BSc76w

2)提高代码的可移植性。
用一些更为具体的变量通过宏定义IO口提高可移植性,相当于对代码的增值,方便他人使用。

你可能感兴趣的:(STM32开发技术总结,经验总结)