"); //-->
来源于小伙伴提问:
下面是我的一些看法。
放弃51直接学STM32完全可行,甚至可能更适合你。
STM32能满足你做酷炫项目的需求,开发门槛也没有想象中高。
至于电路设计和PCB方面的学习曲线,虽然略有挑战,但通过资源丰富的在线教程和工具,你可以快速上手。
1
跳过51直接学STM32的问题?
首先,51单片机(8051架构)是个“老前辈”,很多人从它开始学,因为它简单、成本低、资源丰富。但是它的性能和功能的确过时了,尤其是在如今需要更高性能、更多外设支持的项目里,它的局限性很明显。
STM32属于ARM Cortex-M系列,功能强大、功耗低、外设丰富,支持很多你感兴趣的特性,比如无线通信、传感器接口、实时数据处理等。
从51直接转STM32,你可能会遇到以下问题:
开发环境的复杂度增加:STM32的开发环境和工具链(如STM32CubeMX、Keil等)比51要复杂一些,不过有很多资源可以帮你快速上手。而且,很多代码配置可以自动生成,比你手动写寄存器操作要容易得多。
资源和学习曲线:STM32有更多的外设、更多的中断、更复杂的时钟系统,所以一开始你可能会感到头大,但因为你已经对C语言有一定了解,所以习惯了之后,你会发现STM32能帮你轻松应对各种挑战。
跳过汇编:虽然你说汇编不会,其实很多STM32开发中并不需要深入了解汇编,大部分C语言就够用了。很多库和框架都为你封装好了底层的东西,直接用C写高层逻辑就行。
2
为什么STM32适合你?
STM32能更好地支持你“玩”那些有意思的东西。
比如你提到的:
自平衡小车、飞行器:STM32有强大的定时器、PWM输出、ADC/DAC等硬件功能,可以轻松处理电机控制和传感器输入。
无线通信、Wi-Fi、蓝牙等功能:STM32可以用外部模块进行Wi-Fi和蓝牙的通信,而像ESP32这种芯片直接集成了Wi-Fi和蓝牙功能,可能对你这种项目更合适。
图像处理、红外线感应:STM32能处理复杂的传感器输入,处理速度比51要高得多,这对实时的控制和数据处理至关重要。
3
额外疑问回答
STM32学习推荐
开发板:STM32F103(入门经典款)、STM32F4(更高性能,适合复杂应用),或者试试STM32 Nucleo开发板,兼容Arduino扩展板,适合从简单项目入手。
教程推荐:看一些YouTube教程或者B站上的STM32入门课程。可以从正点原子、野火的教学资料入手,他们都有详细的硬件和软件讲解。
画板、焊接、PCB流程
如果你要自己画板和做硬件开发,得学点模拟电路和数字电路。可以参考《电子工程师基础教程》和《电路基础》这类书籍。像你提到的PCB设计,确实是你设计好电路图后,通过像EasyEDA、Altium Designer之类的工具画出PCB,然后可以找厂家做板子,像JLCPCB等网站很方便。
至于焊接,你需要学点焊接基础,学会用烙铁手工焊接简单的元件,或者直接把设计好的PCB送去焊接厂做SMT贴片。
多久能达到熟练?
学习速度因人而异,但你有编程基础,这是一大优势。大概半年到一年你就能做一些简单的自制硬件项目,比如自平衡小车或传感器的集成。
如果想完全掌握从设计电路到实现复杂功能,可能需要更长时间,比如2年左右能熟练掌握电路设计、PCB制作和固件编程。
收入问题
嵌入式开发行业的薪资差距较大,初级工程师(刚转行或新手)月薪大概在8K-12K人民币,而熟练的嵌入式开发者可以拿到15K-25K人民币甚至更多。
如果你有了这方面经验,不仅能做自己感兴趣的项目,还能进入物联网、智能硬件等高薪行业。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。