杨部发力了,彭部也想分享一下自己学习电子方向的一些经验和总结,希望能够帮到你们。
能力有限,看完如果觉得有收获发个评论吧
首先这篇分享分为两个大方面,一个是学习方向上的一些分享。二是分享竞赛实用技巧。
学习方向
首先就学习方向上,大家可能在学完51之后,在学长学姐的建议下已经学习stm32,在这里我强烈建议,标准库和hal库都要掌握,hal判断自己掌握的熟不熟练的一个方法就是,能不能用cubemx生成代码来复现一遍江协的标准库。这样使用起来的时候就不用老翻CSDN了。当然对于其他单片机的使用的学习,也是需要费一番功夫,特别是资料特别少的单片机,尽量根据自己想参加的竞赛,项目来拓展自己学习的芯片,这样效果会好些。
在stm32学的差不多的时候,很容易不知道下一步该学些什么。这里来分享一下自己的想法。
一个就是根据自己的一个兴趣爱好来学习,比如视觉,操作系统,FPGA等方向的学习。或者实在是提不起兴趣,也可以看看招聘网站的一些要求。看看自己哪些方向还可以提升一下。无论如何在学习就是好的嘛。
如果想在竞赛上有所收获也可以根据具体竞赛的要求来拓展自己的技术栈。(尽量参加专业对口的竞赛,下面放个竞赛目录,从上往下选择自己想参加的即可,不建议参加PPT大赛,仅个人想法,以你为准)

然后就是具体讲讲一些比赛包有用的技巧与知识
PID超详细教程——PID原理+串级PID+C代码+在线仿真调参
这里推荐一篇讲解PID的博客,也是出现频率最高的算法。看完你也应该对pid有一个基础的了解了,也应该深刻体会了闭环控制的精髓。那么 接下来给大家介绍两个小技巧快速调PID参数。
一个就是VOFA上位机的使用,简单理解,大家在学习51时用到的STC-isp就是一个上位机,利用上位机可以显示单片机串口数据,不管用于Debug还是调参都是很好用的。那么VOFA上位机有什么优势呢?一是可以将串口的数据转换成波形图,二是上手简单,基本一看就会。三是控件丰富,可以有丰富的拓展应用。
使用VOFA+上位机进行PID调参(附下位机代码)
这里大家经常会使用usb转ttl模块用于电脑和单片机通信,这时候往往很烦的一个点就是,有的时候很需要小车边跑边调,你也不想抱着电脑追着小车扯着杜邦线调吧这里有如果有余力的同学可以使用esp8266,或者蓝牙模块简单diy一个无线串口模块,这样就是让小车跑着看数据了。相当的爽没有余力的可以在某宝买到相关的模块。
既然有无线串口模块,那还有没有其他什么模块可以帮助我们更好的调参吗?这时候就可以了解些无线调式器。可以做到远程编译下载程序,不用疯狂插拔stlink。
这里也提到了调试,那么你会合理的使用keil5的调试功能来调参吗?keil5的调试功能其实还是相当好用的,只是很多人不会使用。简单来说,比如可以用watch窗口来观察全局变量的数值,也可以修改全局变量的数值。一定要是全局变量噢。
keil debug调试中的watch窗口变量监测
然后就简单的说一下,一些好习惯吧。相信大家都知道模块化的重要性,那么怎么样让模块化真正帮到我们呢?
大家可以吧自己平时比赛的代码整理下来,把不同模块用到的代码分门别类放好,在写上移植需要注意的事项,这样在时间紧迫的时候这些代码就是你节约时间的利器。
大家也要多多活用c语言的结构体和指针。比如在四轮的PID上,正常写看起来非常繁杂,那其实可以用结构体来简化这一个过程。
例如像这样
typedef struct
{
float Kp,Ki,Kd;
float error[3]; //error[0]代表本次误差,error[1]代表上次误差,error[2]代表上上次误差
float target;
int actual;
float p,i,d;
float output,delta_output;
}PID;
PID PID1,PID2,PID3,PID4;
不知道大家看完感觉怎么样,可以给个反馈
如果有什么其他想了解的可以留言。