如果STM32的资料和10年前NXP单片机一样少的话,学不会的人可能会更多。
大家好,我是无极,是一名从事单片机开发10年的老兵。
多年来,我使用过很多不同的单片机,它们的基本相同,就是配置寄存器来使用单片机。
有的不需要自己配置寄存器,直接调库使用,比如STM8、STM32。
用了这么多,个人觉得最过瘾的是ST的单片机,就是STM8/32,其次是STC的。
因为这两款单片机的教程太多了,而且都成熟稳定。
我永远不会忘记当一些不受欢迎的微控制器因为一个外设而让我生气两周时我所感受到的愤怒。
我永远不会忘记一些微控制器必须使用不受欢迎的开发环境。 对开发环境和芯片不熟悉,资料少,代理也懒得让你感到无奈。
还有一些芯片和编程器要几百甚至上千。 我不好意思叫他们买,怕他们怀疑我偷偷赚差价。
这些都是我在开发生涯中经常遇到的困难。 老板只关心成本、质量、周期,却不关心工程师的头发会不会掉。
有时候,遇到那些奇奇怪怪的芯片,我真想大喊:去NMLGB吧,多么愚蠢的事情啊!
我还是比较喜欢主流的STC和STM32。 如果让我用一些不熟悉、不受欢迎的芯片来开发产品,我什至想辞职。
以STM32为例。 无论遇到什么问题,外设是否无法使用,编译错误等等,我都可以通过网上搜索快速找到问题并解决。
ST公司唯一一次让我生气的时候是我使用他们的stm32cubemx的时候。 他们删除了我所有的桌面文件,因为它配置不正确。
后来气得我想用手撕碎stm32cubemx。 最烦人的是无法删除。 应安装辅助软件。 简直就是流氓软件的由来。
接下来的日子,我还是会用比较原始的固件库来开发,免得被骗,没人说话。
相信大多数工程师都和我一样喜欢STM32的开发模式。 毕竟人都是懒的,没有人会给自己找麻烦(试图用新的芯片)。
STM32之所以能够在众多单片机中脱颖而出,我个人感觉有以下几点:
资料和教程丰富,开发板随处可见,做FAE代理商就是这么简单。 完整的库无需配置寄存器,缩短了产品开发周期。 价格还算合理(除了今年大幅上涨)。 拿货很容易。 以前用stm32开发产品基本上不存在买不到芯片的问题(今年除外)。 也许我们的数量太少了。 性能稳定,基本不存在乱码问题。 偶尔电源短路,芯片不烧。 尊重客户需求和开发者,企业最看重的是快速稳定,最好是低成本。 工程师最喜欢的是信息丰富、使用方便、上手快。 ST在这方面一直在努力,包括过去提供固件库以方便使用。 工程师们开发产品的速度很快,现在慢慢在stm32cubemx上工作,这使得他们的芯片使用门槛更低,烧录器等细节也便宜。
除了这些之外,ST的产品线也非常丰富。 基本上,高、中、低端产品都有相应的型号,以满足不同的产品需求。
当然,可能还有其他的,不过我还没想到……
不过我觉得如果数据手册能符合中国人的阅读风格就更好了。
即使使用了这么多年,当我看数据手册时,我也感觉有点麻木,很多都看不懂。 其实只要把开发板例程复制过来并使用就可以了。
在这里,我也想分享一下我个人阅读数据表的技巧,那就是不要先读它,而要先读代码。 如果代码没有问题,那么就用代码来理解数据表。
例如定时器有周期、分频、计数模式。 程序基本上都是通过结构体成员来配置的,非常简单。
如果让你阅读数据表来编写这个程序,你肯定不知道从哪里开始。
下面我们就来说说如何更轻松的学习STM32。
1.通过开发板学习
这也是大多数人的学习方法。 相信很多新手都看过一些视频教程,比如某某热门的视频教程。 我也看过。
前面的还好,但越往后看,我就越迷茫、越迷茫。
我的建议是先阅读教程,然后自己做。 如果你不明白,请再看一遍教程。 这将使它更容易理解。
不实践就永远不会理解某件事。 理解某件事和能够做到这件事是完全不同的事情。
2. 通过项目学习
相信很多人在了解了开发板之后仍然会感到困惑。 虽然他们可以使用外设,但他们不知道如何使用它们来构建项目。
我第一次接触STM32是因为公司产品的需要,所以当时并没有看视频教程。 相反,我买了一块开发板,将他们的外围例程复制到我自己的产品中。
我没有使用很多外围设备。 我大概记得只用到了GPIO、定时器、串口、ADC、DMA。
因为产品只需要这些外设,所以没有时间去学习剩下的,直到后面有新产品的需求,我就学习了FSMC、SDIO等。
事实上,学习就需要这种循环、渐进的过程。 首先学习基础知识,然后通过项目实践,然后学习芯片的高级功能,然后通过项目实践。
只有这样你的理解能力才能跟上节奏。 否则,你读教程而不使用它们就是浪费时间,而且你很快就会忘记它们。
这就是为什么我们无极单片机编程带领学生通过项目驱动的方式来学习单片机。
通过项目,你可以深入了解所学知识的用途以及用在哪里,你的学习会更有针对性。
但是当你做了3、5年之后,你就会明白,我们虽然是从事单片机开发,但重点并不是学习单片机。
技术更新非常快,单片机市场也非常大。 也许明天就会有一种更好的芯片来取代你目前使用的芯片。
因此,一个合格的工程师不应该依赖任何微控制器。 思考才是你真正的技术。 最后祝我们国产芯片快速崛起!