stm32零基础怎么两周入门,应该怎么安排?

一个新手来给你点有用的东西,因工作需要入了电气控制,简单的说步进,电磁阀,伺服,变频,通讯,都大大小小项目干了,只不过用的是plc,为什么学stm32?是因为项目遇到了难题,简单说就是微秒级别的检测,它并不是plc高速输入输出就能解决的,也不是中断能解决的,但是stm32能解决,就那么简单。

学stm32这类的人有几种,一种是电气类的,一种是工程类的,还有软件,电子类的,为什么很多人入门了,但是一直处于入门阶段,自己干不出东西来?甚至开始怀疑,这东西学了到底有什么用?很多人就去搞嵌入式了,搞服务器了,觉得这东西没用。

个人建议的学习路径,很简单,先找一个实际的需求,注意是真实的需求,然后干它,干成了,你也就入门了。对于我们干项目的来说,需求太明显也太多了,举个例子,自来水增压泵,就会用到一个模拟量输入,一个开关量输出。压力检测传感器,会给你一个模拟量,代表压力大小,压力小于多少,输出信号启动电机增压,压力大于多少,停止电机,一共两个gpio口,两条判断程序,简单吧?这东西很实用,商业产品自动控制比手动控制大概贵两三百块钱,实用吧?

再比如,你可以给你们家的门做一个密码锁,你就会用到输入键盘,起码9个数字得有吧,当然,开锁还是一个输出开关量,控制电磁锁。再比如,鱼缸换水充气,扫地机器人,电器控制,晾衣杆控制,这些是家用的,如果到工业领域,那控制多了去了。

什么,我还是没说怎么入门stm32,应该先学什么,再学什么。错!很多人为什么入门,并且一直处于入门状态,他们不知道stm32这东西学了干什么,不知道它的价值在那,仅仅是几块钱的那块芯片价格吗?

stm32,是微型控制器,和plc一样,是控制器,控制器能干什么?当然是控制一个真实的东西,项目和系统了。很多人觉得,点灯很简单啊,实际没啥鸟用,确实简单,但是,点灯本身,就可以运用很复杂的实际运用了!您只要会点一个灯,您就可以扩展两个,三个,最简单的红绿灯,东西南北,也就六个灯(实际东西两组是同时变化的),那么,第一课点灯之后,您就可以做红绿灯了,没错,是真实的红绿灯!

第二节,很多教程会讲按键,也就是输入,很多程序员和电子专业的没去过工厂,很多设备,特别老一点的,按钮能有几十上百个,没个按钮都有它的功能,这有什么用?最经典的,电机正反转和启停,当然这个有很多种解决方法,如果是变频器,正转点一个灯,反转点一个灯,一个电机,没啥鸟用,需求来了,假如我要同时启停二十个电机,并且同时控制他们正反转,实际有这样的需求吗?有!还很多,比如物流线上的,煤炭矿产输送带,长度能有几公里!

这里仅仅举了两个例子,就有那么多需求,它没用?是你不会用,它很复杂?并不复杂,比如红绿灯,实际上您简到的,还有倒计时功能,语音提示功能,手动切换功能,物联网功能,您要完成一个可以卖钱的项目,单输出点灯远远不够的,真实项目干了,你就已经不只是入门且一直入门阶段了。

比如多电机启停正反转,实际您可能还要再控制几个电磁阀,控制电机转速,同步加减速,搞完了,这也是一个很大的项目了,会用到通讯,会用到模拟量输出,会用到复杂的加减速曲线,这就是为什么知乎这种学院派平台,很少有人能给你有实际价值的建议,回答你问题的人,也就比你多学了几章类似点灯的教程而已,他们并不知道单片机如何才能点红绿灯,而不是板载led,也不知道电机要如何启动,为什么要加减速曲线。

可以这样说,stm32看似复杂,其实实际运用,还远远不够,比如红绿灯,实际红绿灯功率可能很大,gpio是不能直接连接的,电压,电流都点不亮,比如通讯,485确实能和绝大多数工控的东西链接和控制,但是就stm32这种抗干扰能力,可能在一个比较理想的环境下还行,到现场接上线通讯就断了,比如电气控制,绝大多数控制元器件都是24V电压,stm32最多5V,您会发现它貌似什么都干不了。

但是,实际上,plc核心,其实也是一个arm控制器,它的输入输出,都是光电耦合的,它的485通讯,都是做了很严格的抗干扰的,这些您都要学,都要懂,当然,让学电子,软件的同学学这些,实在是为难了。

控制器的本质是什么,本质是编写业务逻辑,控制其他的东西,atm32本质是什么,是一个微型控制器,用最少的钱,最少的代码,去控制能控制得东西。它能控制什么,据我不完全统计,它能接收各种传感器的信号,控制电磁阀,电机,执行元件,能通信控制仪器仪表,能控制步进,伺服,能控制灯,加热,能控制四轴,玩具,航空模型等等。

总结,要入门,干实际需求的项目(可以虚拟),一个下来,stm32的大部分东西你都会学会。多干几个,你也就学的差不多了。

另外,stm32cube ide能帮你省去很多麻烦事,别说直接上它没用,内部时钟,引脚,直接是图形的,看图都理解不了的东西,别指望敲代码能理解,何况很多教程,很多老师本身也是一知半解的。

最后,说到编程,推荐用hel库,推荐直接stm32cube ide编程,jlink下载器下载,编程有个思想,就是坚决不复制粘贴除业务逻辑外的所有东西,只要你的操作有这个步骤,说明你的操作有问题,为什么有类,有面向对象,有库和封装,就是为了解决复制粘贴的!stm32cube就是让你不再学各种教程自己配置项目,自己启用各种时钟,配置每个端口,只专注您的业务逻辑。可以这样说,使用stm32cube ,完成原子等入门教程,假如环境和调试正常的话,从点灯到最后,照着敲代码,一天就跑完了。

总之,一个有实际价值的项目,胜过您把stm32方方面面都学透彻,官方让你不要去在乎它哪些寄存器,内部细节,你就专注业务逻辑和外设就行,毕竟这个社会,并不因为你懂得多而多给你工资,而是您要用懂的东西做出事来!多知道个寄存器,还不是cube点点鼠标就自动生成的代码,还不如学学电磁阀是什么,有几种,怎么接线。

你可能感兴趣的:(stm32,嵌入式,单片机,学习,c语言)