STM32编程入门到精通(带您学STM32之一千里之行)

开门见山,个人认为:嵌入式(本系列特指MCU及其编程)的学习,一定要注意实践。教程看再多,不实践,知识是学不扎实的。我打算用从0设计板子的方式,带领感兴趣的朋友,一起学STM32。本篇主要讲整体思路,相当于实际工作中的产品定义过程。

STM32编程入门到精通(带您学STM32之一千里之行)(1)

将要做的开发板之一(立创3D效果图)

为什么要自己动手做开发板

学习单片机,要从硬件开始动手,单纯学习软件,很容易达到瓶颈。软硬结合,两头都要抓,都要学。那最好的办法就是从零开始,自己做一套开发板。以这个为契机,走通嵌入式开发的整条路,并积累实实在在的经验。

现在市面上的开发板,为了追求大而全,常有很多外设,像什么LED、数码管、LCD、蜂鸣器、矩阵按键、遥控器等等集中到仪器,多而杂,毫无主次。它们大部分是通过复用IO或者外扩芯片来完成的。至于为什么这么设计,初学者通常一头雾水,不知何故。使用现成的板子,很多初学者都会跳过硬件这一步。导致很多编写代码时不知缘由,不仅失去了学习硬件知识的机会,还严重影响学习编程的效果。所以我主张从做开发板开始学起。

开发板设计思路

开发板是核心板的形式,也就是主板只有MCU和必要的插件,主要目的是引导大家学会硬件设计,包括原理图和PCB。插件初步兼容Arduino的信号定义,为后续的其他兼容设计打下基础。

外围电路,通过若干块扩展板来实现设计。学习者可以通过手动连接,来加强实践,加深理解。

考虑到国内没有像样的Arduino板子,我希望可能的话,这个板子能演进出类似Arduino的学习套件。核心板、扩展板以及驱动代码,将逐步开源,方便大家学习。

选单片机

单片机,我选择的是STM32F030C8T6。这个48脚的Cortex-M0内核的MCU,既有足够的资源,又不算复杂,比较适合初学者入手

个人不推荐8051。因为传统那种8051的知识点相对太简单了。实际做产品用的8051都是集成了很多外设,这些是无法通过市面上那些8051的开发板学会的。

选M0的好处是成本不高(最近MCU涨价,行情不正常),性能更强,复杂度适中,比8051那种开发板学到的知识更多。它比STM32F103这种MCU要简单一些,外设寄存器也要相对简化。实际中,M0有取代8051的趋势。

掌握了M0的外设以及库函数使用,基本使用M3、M4内核的单片机,也就没什么难度了。至于8051,也是不在话下。

选择开发工具

对于初学者来说,PCB设计我推荐立创的EDA。我用过Allegro、PADS、AD。但是去年开始,单片机板子都开始用立创的EDA完成了。我不能说它功能多强,而是实在太简单,非常适合初学者。不用发愁枯燥的概念,操作逻辑相对简单好懂。另外,最关键,它可以在线编辑,不用装工具,还可以多终端同步。立创EDA上的设计,可以直接在立创上投板、购料、加工。简直是太方便了。

单片机的开发环境,我推荐Keil。这个工具是老字号了,肯定是优选。到代码和环境成熟到一定程度,我会提供VSCode和ArduinoIDE的开发方案,让板子的可玩性更高一点。

开始

核心板子已经布出来了,检查下没问题就可以投板了。明天以这个板子为基础,开始按知识点讲解STM32的学习之路。扩展板,将在合适时机切入。

STM32编程入门到精通(带您学STM32之一千里之行)(2)

第一版的硬件PCB

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页