初中生文凭学习单片机STM32很简单吗
////插播:今年年初录制了一套比较系统的入门单片机教程,想让同学免费找我拿,私信我就可以了~点击我的头像黑色字体和我的地球。最近比较闲,带学生参加省级或以上比赛/////
1.感觉简单,解释ST成功了。
当年STM32是如何在众多单片机中脱颖而出的?因为有库函数。
在此之前,单片机主要是51,AVR、PIC、MSP430这些东西就是写一个UART通信函数,首先搜索别人的代码参考,发现别人写不完全满足需求,自己修改,然后慢慢积累自己的一套库,在更换单片机时,近年来的积蓄发现没有用。
ST不就是为了降低半导体的开发门槛吗?
大趋势是让开发者专注于更抽象的应用,而不需要太关注单片机底部的东西,ST抓住这一趋势的先发制人才能迅速占领市场。
什么?直接写寄存器?汇编?这种炫技的东西绝大多数STM不需要32的目标应用。什么成本敏感?谁选择成本敏感?STM32啊,几毛钱一个只能用汇编单片机来理解。
2.入坑STM我们应该学什么?
·做键盘/鼠标可以学习USB协议
·要做网络设备,需要学习以太网,TCP/IP协议的底层实现
·做一个无线设备可能需要学习蓝牙,WIFI或者zigbee的协议
最终的应用程序可能没有库或包,需要自己写底层。如果使用模块,可能需要学习SPI、I2C或者SDIO接口连接模块。
做一辆平衡车需要学习PID算法。
做摄像头需要学习SCCB如果你想加深协议,你可能需要学习一些图像处理知识。
如果这个摄像头连接起来PC,如果你做更深入的处理,你需要学习上级机器的编写,可能需要设计协议或写一个服务器时,你可能需要学习开发服务器的知识和写服务器的语言,包括不限于C /Java/python/nodeJs。
也可能需要学习一个服务器框架。服务器有数据库,学习简单nosql吧,当然mysql和oracle也可以。
如果上位机需要图形界面,最简单的可能是C#,当然C 调用win32 API更好。
要做人脸识别、图形分割、机器学习知识,可能需要python和tensorflow / pytorch框架,当然,其他语言也可以,但可能更复杂,机器学习,基于数学,嗯~,那种很难。
现在都是手机操作,Android也许学一下,Java走路。假如手机碰巧是苹果的,objective-c学起来。
如果你继续深入,做一个更复杂的设备,你首先需要设计自己的板。PCB需要学习设计、模电数电、电路原理。
在软件层面,可能会发现裸机不够,可能需要学习ucos/freeRTOS这样的操作系统,甚至学会写一个操作系统的核心。如果该系统需要强大和高效,则需要深入了解操作系统、数据结构、算法、优化、汇编语言等。
以上内容还是很多的,不知不觉学到了计算机科学的一部分,对计算机科学有了基本的了解。
假如大家都认为这是强行关联,其实不然。综上所述,只是用STM32在服务器端做了一个处理单元的小机器人,可以保持平衡,识别人脸,在服务器端做PC只是控制端和手机端。
语音识别、对话系统和其他功能尚未说,这些可能需要更多的自然语言处理,甚至加强学习知识,你发现,往往效果不令人满意,这不是你的技术不好,而是世界的瓶颈,祝贺,可以读论文,写论文,为计算机、人工智能领域的突破做出贡献。
什么?想把运动单位当成波士顿动力?这件事更复杂,不然你觉得我是怎么入坑的?
3.当技术深入时
技术深究起来自己都怕,比如刚学习了STM32的cortex架构,寄存器、指令集、内存是如何实现的?
刚知道这些,它的锁存器是什么,取指和解码过程是什么?
如何实现加法器?刚知道三极管和布尔的逻辑操作,三极管是怎么工作的?
刚了解PNP和NPN,共射特性曲线是什么?
为什么载流子会运动,正反偏是什么?
为什么磷、硅、硼作为半导体材料会形成电子流动?空穴能流动吗?
重点不是STM32能做什么,但我们能用什么?STM32该怎么办?产品能做多少,市场竞争力如何,甚至考虑是否满足用户未满足的需求,即填补市场空白。
技术不是独立的,而是拓扑的。