美文网首页
树莓派玩转STM32开发(一)——介绍篇

树莓派玩转STM32开发(一)——介绍篇

作者: 荣卓然 | 来源:发表于2020-03-04 22:51 被阅读0次

    树莓派(Raspberry Pi)听起来让人流口水,但它的确不是吃的(身为吃货的我第一次也以为它是食物……)。树莓派是基于ARM架构的Linux卡片电脑,由英国树莓派基金会开发,目的是以低价硬件以及自由软件来促进学校的基本电脑科学教育。

    树莓派

    Raspberry(树莓)源于对微型计算机以水果为基础命名的传统。如苹果机。Pi(派)代表“Python”。因为Python是第一个移植到树莓派上运行的程序。

    树莓派以低廉的价格和较高的性能,迅速赢得广大极客们的喜爱,这年头手里没有几个树莓派都不好意思上街跟人打招呼。正是因为树莓派价格友好,使用简单,以至于它的玩法有非常多,随便在搜索引擎上使用“树莓派”作为关键字搜索一下就能看到非常多的资料以及新奇的玩法,比如用它作为服务器内网穿透,或把它作为物联网的控制板操控一些电器,或让它作为机器人小车的主控制板,再或者把它变成一个智能路由器等等等等,只有想不到,没有做不到。

    目前流行的是树莓派3B+以及2019年最新推出的树莓派4B,后者具有更强劲的性能,价格却不比前者贵多少。

    但是树莓派的核心CPU使用博通的SoC,树莓派官方并没有对其提供一个完整的DataSheet和技术参考手册(Technical Reference Manual, TRM),所以它不能算是一个完全开源的硬件。而且国产的兼容树莓派生态的产品,比如Friendly ARM公司出品的系列单板电脑,价格比树莓派更便宜,同时也不输树莓派的灵活和多功能。


    STM32F103

    STM32系列芯片是意法半导体公司推出的高性能、低成本和低功耗的32位微控制器(MCU),核心为Cortex-M处理器架构,指令集架构采用Thumb-2变长指令集(相对于定长指令集,在相同ROM存储容量下具有更高的指令密度,降低成本)。

    STM32的应用非常广泛,主要领域如汽车、工业、消费电子、通信和医疗等,就拿身边的例子来说,比如空调,电饭煲,抽湿器和洗衣机等,功能稍微丰富一点的设备,都可以使用STM32来实现。再加上最近IoT概念的爆发,一些边缘智能设备比如智能水表,智能家居,智能门锁和共享单车等等,内部或多或少都使用到了STM32实现全部或者部分自动控制功能。

    在嵌入式STM32开发中,市面上的教程几乎全部是教大家如何在Windows下使用Keil或者IAR这两个IDE和其配套的编译器进行开发和调试。这没什么不好,但是以嵌入式开发者的自身发展角度来看,随着不断进行嵌入式技术的学习,其技术栈最终还是要走到操作系统,再到具体应用和业务的开发,底层系统永远都是为上层应用服务的。而嵌入式下发展势头最猛的操作系统无疑是GNU/Linux,所以在Linux下开发STM32的同时也可以学习Linux的基本操作。其次,Keil和IAR都是商业性的收费软件,绝大部分教程都是教大家如何破解它,这种行为在个人学习的时候无所谓,但是在公司中用盗版软件实现商业用途去开发自己的产品,就有可能收到律师函。

    在《树莓派玩转STM32开发》系列文章中使用Friendly ARM的Nano Pi K1 Plus作为开发机,STM32F103作为目标MCU进行开发。Nano Pi K1 Plus采用全志H5这款SoC,4核A53,2GB LPDDR3 RAM,支持WiFi,1个HDMI、3个USB口、1个千兆以太网口,价格便宜,性能强劲,同时兼容树莓派的生态。STM32F103是市面上最常见的一款MCU,淘宝上搜一下基于它的开发板超级多,在这里就选择正点原子的ATK-NANO,这块板子比较小巧,板载st-link仿真器,板上资源也比较丰富。

    Nano Pi K1 Plus
    STM32F103RBT6

    后面会有一系列文章从零开始搭建Linux下STM32开发环境以及一步一步的做一个基于FreeRTOS+MQTT的物联网终端。

    参考资料:
    [1]. https://zh.wikipedia.org/zh/%E6%A0%91%E8%8E%93%E6%B4%BE
    [2]. http://wiki.friendlyarm.com/wiki/index.php/NanoPi_K1_Plus/zh


    扫一扫关注公众号~

    *未经授权不得转载

    相关文章

      网友评论

          本文标题:树莓派玩转STM32开发(一)——介绍篇

          本文链接:https://www.haomeiwen.com/subject/fwtwkhtx.html