STM32开放式开发环境:释放创造力的利器
市场上涌现各种价格亲民的经济型微控制器,助力新一代开发者创造令人兴奋的新型嵌入式应用。如今的开发工具非常好用,软硬件均呈现模块化趋势,插接安装简单容易,使得产品设计评估和原型开发周期大幅缩短。STM32开放式开发环境是业内独一无二的软硬件开发平台,堆叠式插接电路板集成各种模块化硬件,同时模块化软件覆盖从驱动程序到应用层的全部软件,帮助设计人员将创意快速变成产品原型,顺利转化成最终设计。
STM32开放式开发环境是什么?
STM32开放式开发环境 是意法半导体开发的嵌入式系统原型设计开发环境,以简化嵌入式项目设计为目标,通过开源形式提供全部重要功能模块,组件包括:
-价格极低的STM32 Nucleo开发板(STM32微控制器)和STM32 Nucleo扩展板(传感器、通信接口、电机控制和致动功能),提供基于尖端商用产品的各种硬件功能。
-基于STM32Cube软件工具的STM32微控制器软件库和简单好用的软件库配置器(STM32CubeMX )。
-STM32Cube扩展软件库,支持STM32 Nucleo扩展板上各种器件,包括电机驱动器、低能耗蓝牙模块、MEMS传感器等。
-功能包:一套利用STM32 Nucleo开发板和STM32Cube软件为一些最常用用例开发的功能性例程(代码示例)。
-每个软硬件功能模块都配备描述详尽的技术文档。
-活跃的快速发展的在线开发社区
STM32 Nucleo开发板
STM32 Nucleo开发板是STM32开发环境的基础组件,板载一颗基于ARM® Cortex®-M 32位处理器内核的STM32微控制器。STM32开放式开发环境所用的STM32 Nucleo开发板是64引脚版(图1)微控制器。目前STM32 F4和STM32 L0微控制器兼容所有的STM32 Nucleo扩展板和扩展软件。
图1 – STM32 Nucleo-64开发板
开发环境使用基于STM32Cube HAL(硬件抽象层) API的STM32Cube软件库,大幅降低了在不同系列的STM32产品(目前有20余款STM32 Nucleo开发板)中移植软件项目所需的编程工作量。
STM32 Nucleo-64开发板硬件具有以下特性:
-采用LQFP-64封装的STM32微控制器
-通过38引脚的Morpho连接器可以使用STM32的所有引脚
-四个Arduino连接器(位置非对称排列,引导用户正确插接Arduino兼容扩展板)
-集成ST-LINK/V2-1调试器/代码烧录器和mini USB端口,无需安装额外的调试工具,板子可直连PC机,进行调试和烧写代码操作。此外,USB接口支持虚拟COM端口和大容量存储接口(兼容ARM mbed)
-2个按键(微控制器复位信号和开发者专用按键)
-3支LED灯(5V电源、开发者专用、ST-Link调试器状态)
用户可以为板子选用不同的电源:
-5V USB供电
-5V外部电源
-外部电源VIN (7-12V)
STM32 Nucleo开发板上的5V电源还用于驱动通过Arduino或morpho连接器连接主板的扩展板,同时通过板载稳压器为STM32提供3.3V 电源。
STM32 Nucleo开发板功能性极强,板载代码烧写/调试工具非常实用,设计人员可以立即动手开发项目,而无需添置昂贵的开发工具。
基于STM32Cube的嵌入式软件和工具
在选中了最适合自己的STM32 Nucleo开发板后,下一步是下载相关的软件库,熟悉STM32技术特性和外设。最快捷的入门方式是下载软件库配置器STM32CubeMX (www.st.com/stm32cubemx)。在这个工具的图形用户界面内,用户只要直接选择正在使用的STM32 Nucleo开发板(图2),配置器就会按照板子所连接的硬件设备(例如LED、按键、UART引脚分配)自动配置STM32外设。
下一步,可能需要详细配置每个外设,例如,设置UART同步/异步通信模式、波特率、寄偶校验和停止位。
图 2 – STM32CubeMX: 从板子选型到外设配置,只需几步简单的操作。
最后,STM32CubeMX将生成代码,创建一个完整软件项目,且兼容所用代码编译工具链(例如IAR、Keil或Eclipse),同时配置先前在图形用户界面内所选的全部硬件和外设,并兼容所用代码调试/烧录工具。
这个图形用户界面工具让你从零开始创建项目,几分钟完成项目所需的全部配置,然后立即动手创建自己的软件项目,直接在main.c文件里写代码。
图3 – STM32Cube软件库的层次
所生成的代码位于STM32Cube嵌入式软件之上,STM32Cube有两个主层(图3):
-硬件抽象层:准许上面的软件层(例如,中间件层)执行各自的功能,而无需开发人员深入了解如何使用微控制器
-中间件:一整套中间件组件(RTOS, USB, TCP/IP, …)
软件设计采用模块化方法,用户在项目开发过程中可以随时添加软件模块,轻松地跨系列移植全部项目。
STM32 Nucleo扩展板
为连接STM32 Nucleo扩展板,STM32 Nucleo-64开发板配备两种连接器:
-兼容Arduino标准的Arduino连
- μC/OS-II下通用驱动框架的设计与实现(07-23)
- 微控制器省电管理方法(05-04)
- 基于DSP和Cygnal单片机的移动数据处理传输系统 (07-06)
- 从硅片工艺技术到嵌入式软件的全方位低功耗系统设计(01-01)
- 基于IAP的STM32程序更新技术(01-23)
- 发挥ARM Cortex-M3和M4微控制器最大作用的要诀(01-21)