STM32 NUCLEO开发平台是ST在2014年最新发布的易用性好、可扩展性佳的低成本平台。开发平台具有mbed功能支持,提供Arduino接口,还提供ST Morpho扩展排针,可连接微控制器的所有周边外设,可以利用Arduino巨大生态系统的优势,通过Arduino shield 板快速评估包括以太网、LCD 显示器、GSM 语音及数据通信、ZigBee 通信、WiFi 网络连接、电机控制、音乐及声音合成器等多种应用。 如果之前不了解Nucleo平台,可以先看看爱板网之前发过的NUCLEO开发板评测文章
三个板子对比图,看一下,你能找到区别吗?
今天向大家介绍的是最新的Nucleo-F091RC开发板,基于Cortex-M0内核的F0微控制器,可以说是STM32F0(STM32F0系列产品)系列里目前性能最强大的Nucleo开发板。和之前我们评测过的Nucleo-F072RB开发板非常相似,两种开发板的核心微控制器相比差别非常小。 STM32F091RC(STM32F091RC数据手册)相比STM32F072RB(STM32F072RB数据手册)来说片上FLASH和SRAM容量更大,足以实现Java堆栈,能够运行通常只有大存储容量或昂贵产品才能运行的复杂应用软件,带来令人满意的用户体验。它克服了目前定位在经济型应用的同类产品的限制,可提供多达8通用同步/异步串行接收/发送器(USART, Universal Synchronous/Asynchronous Receiver/Transmitter),为车载音响或三相电表等应用节省多路复用通信端口。5 L0 j0 h4 S, n2 V Nucleo-F091RC开发板硬件上由全新设计的ST-LINK/V2-1仿真器和MCU核心板组成。& v4 k S& A5 Q* s s% s) U Nucleo-F091RC开发板整体做工细腻,用料考究,采用白色阻焊和魅蓝色丝印,让人眼前一亮,相比Discovery系列的传统绿油白字,拥有更佳的色彩体验感。在PCB外形方面,Nucleo开发板相比Discovery系列有较大变化,( B" q5 \& w7 M+ K
- t* }1 M, g( v9 D. S) m MCU核心板设计简洁,板载一个复位按钮,一个用户按钮和一个绿色LED灯。板载微控制器为STM32F091RCT6,LQFP64脚封装。+ l" W0 n. J5 M3 O1 Q& S
Nucleo-F091RC开发板采用多种供电方式。7 j1 D$ n4 n+ [1 R7 t# B
通过MCU核心板上的JP6跳线开关可以测量MCU核心板的电流消耗。在采用USB供电时,正常运行程序时,电流消耗为1.18mA。 ST Nucleo-F091RC开发板通过Morpho和Arduino接口支持多种扩展板,例如:
Nucleo开发板的资源特别丰富,在开始使用之前可以去下面网站找到大量Nucleo-F091RC开发板的相关资源。
驱动安装及硬件准备0 f" i4 h% H: S1 C; I 给ST Nucleo-F091RC开发板上电前,先去ST社区下载ST-LINK/V2-1驱动或者去ST官网下载STM32 ST-LINK utilityV3.5.0 , 这里还要下载虚拟串口驱动STM32 Virtual COM Port Driver, 安装好这些驱动,给ST Nucleo-F091RC开发板上电后,在PC机上,打开我的电脑/属性/设备管理器,会看到 这三个地方识别到调试接口,虚拟串口和存储设备了。在我的电脑中,会出现一个容量为256K大小的U盘盘符。它固定占用16k容量,存储文件内容如下:% y# s/ y% W" [2 A# d# C* { 这个支持MBED开发环境。打开安装好的ST-LINK utility软件,点击界面上的链接按钮,如果出现下面的信息,表明ST Nucleo-F091RC开发板驱动安装成功了,硬件已经准备好。 多种IDE软件开发方式 ST Nucleo系列开发平台最大的特色之处在于焕然一新的软件开发方式。除了支持传统的IDE开发环境比如KEIL-MDK/IAR-EWARM/ TrueSTUDIO外,增加了在线的mbed开发环境和STM32Cube软件支持。其中STM32Cube 是一个全面的软件平台,包括了ST产品的每个系列,平台包括了STM32Cube 硬件抽象层和一套的中间件组件(RTOS, USB, FS, TCP/IP, Graphics, 等等)。它由两部分组成,$ E/ u. d& h* s" A+ k; S5 f
mbed云端--最快捷的开发方式。无需安装IDE软件,而且有非常多模板可以快速的上手。第一次使用时需要注册账号,之后就可以按照模板开始自己的设计。可以参考从繁至简,颠覆传统设计的云端开发——极具性价比的STM32F401 Nucleo开发板评测了解在线mbed的使用。 注册成功后,进入的界面是这样子。通过新设计,可以建立多种基于模板或者空白模块的程序。 这里选择一个通过虚拟串口打印字符到PC机上的模板进行说明,设置工程名:Nucleo_printf。% i* g- O* Q; e/ V! S + L8 G5 \6 @! Q% x( T/ D5 n! N 确认后,自动生成一个工程文件,main.cpp文件如下,串口格式:9600-8-N-1。代码是C++格式。 ( E" R) x* e+ T( f0 l 点击上图中的编译按钮,编译完成后,会自动生成bin文件,并提示进行保存3 T& f* x+ M: j0 z: t1 k$ y 将这个bin文件复制到U盘内,即可实现程序的下载,真是超级简单!/ g- k$ v$ R# Y5 u2 _+ F 将板卡复位一下,程序就会自动运行了,每次复制bin文件到U盘都会实现程序固件的更新,这种“新颖”的下载方式也是NUCLEO系列平台的一个特色。 打开串口终端,设置好9600波特率,8位数据,1停止位,无校验,然后就可以看到Nucleo-F091RC开发板发送的信息了 s: `# p2 G1 C6 i$ I+ q, T KEIL-MDK+标准固件库--最熟悉的开发方式。这种开发方式是最传统的方式,也是最熟悉的方式,只要下载到标准固件库:STM32F0xx_StdPeriph_LibV1.4.0,参考搭建STM32-NUCLEO-KEIL-MDK工程模板的方法,就可以快速实现程序开发,因为STM32F091(STM32F091系列产品)系列芯片刚推出不久,KEIL-MDK内部没有此系列型号,需要找到路径STM32F0xx_StdPeriph_LibV1.4.0\Utilities\Third_Party\Toolchains_STM32F091_Patches中的补丁工具MDK-ARM STM32F09x_256k _Support_V1.0,将型号信息安装到KEIL-MDK软件中,这里安装到了KEIL-MDKV4.73版本中。建立如下工程模板 并在KEIL-MDK中实现如下文件,编译下载。这里实现了LED灯/串口打印/中断按键的驱动" O2 S" w K4 |' y4 T# \. w0 l 在串口助手上打印信息如下: 3 V& @0 n! [) U5 ~ ~ STM32CubeMX + CubeF0完备固件库—最潮流的开发方式。采用STM32Cube软件开发,还是离不开KEIL-MDK/IAR-EWARM/ TrueSTUDIO等IDE开发环境的支持。所以,在此之前,必须要安装MDK-ARM STM32F09x_256k _Support_V1.0类的补丁工具。 STM32CubeMX是一款图形化工具,它用于STM32初始化代码的配置。它可以直观地进行STM32型号和板卡选择;进行图形化外设资源配置;C代码项目产生,并且它可以很好地支持Eclipse,作为一个插件使用。% u4 ]) U5 x) E4 `5 H' `% M 在使用前,要安装好java软件 才能安装该软件。打开界面后,有【MCU】和【Board】两个选项,这里选择【Board】选项。在【MCU Series】里面选择STM32F0,在【Type of Board】里面选择Nucleo,通过这样的筛选,会看到有3款NUCLEO开发板在列,这里选择NUCLEO-F091RC,在显示绿色的可用外设中,设置button数量1个,Led数量1个。 在引脚配置中,为用到的引脚会以黑色显示。不同的外设和特殊功能引脚颜色不同。( Y% q) x4 i" q u! {+ h 在配置选项中,可以选择是否使用FATFS文件系统或者FREERTOS等。5 [; z) r3 b% D0 Z+ b& } 在时钟配置界面,可以修改时钟频率,作用等同STM32F0xx_Clock_Configuration_V1.0.1 , m, T0 m( Y2 d" {% g* [. k: M 通过点击矩形方框中的资源模块进行分类详细配置 - x Y" s1 Q6 r- J; P; Q 一个针对GPIO引脚的具体配置! B# w) @( m0 A7 m- V: y / E: M8 p7 M0 k. W1 n7 D. x5 g 最后的配置是针对电源功耗的计算,里面有不同种类锂电池可以选择。# L- ^9 E1 R" ]" [, \$ C" _$ ]1 E 点击工程界面的【Generate Code】选项, 在工程设置里面,设置好输出工程名,输出工程文件路径和IDE开发环境等。STM32Cube_FW_F0_V1.1.0要设置好对应的目录,否则无法正确输出。【Code Generator】里面保持默认选项即可。 % v8 _2 A: H! P0 e! n+ b 产生的工程文件夹内容 / G& ~" \9 D4 s2 C9 C3 _, |! C" [- O 这里是可以直接下载的,只不过仅是外设的初始化代码,需要自行增加用户代码。 STM32Cube_FW_F0_V1.1.0是STM32Cube系列软件中针对F0的完备固件库。它在结构上比原来的标准固件库增加一个中间件部分。硬件抽象层STM32F0xx_HAL_Driver和原来的标准固件库类似,注重不同系列型号中硬件资源配置代码的兼容性。通过这样的方式,可以更好地降低STM32开发门槛,增加不同系列型号软件代码的通用性,可移植性。 , @% s; l/ w+ f 在STM32Cube_FW_F0_V1.1.0的工程文件夹中,可以找到ST Nucleo-F091RC开发板文件夹 打开演示文件夹,打开KEIL-MDK工程文件- |+ [% }4 K" [+ u0 e+ q5 u ' w; X6 P, N$ |& ?. S# ?+ ~ 可以看到资料齐全的各种驱动代码,借助这些经过验证的代码,快速实现产品开发。 . U- O2 C) E" x 编译后,即可下载,因为手头没有Adafruit 1.8" TFT LCD shield扩展板,只能看到LED灯闪烁。 / R6 w+ z- e2 b5 U, `) S 小结 介绍了最新的Nucleo-F091RC开发板,10美元左右的价格使它成为性价比很高的开发套件。全新设计的ST-LINK/V2-1仿真器,全扩展接口以及Arduino兼容接口使得Nucleo开发板应用更加多样化。支持各种常用开发软件及在线mbed平台使得Nucleo开发板更加容易上手。统一化的硬件设计风格,让用户可用最低的成本评估5大系列10款产品。STM32Cube系列软件更是带给广大工程师崭新的开发体验,未来采用STM32Cube完备固件库开发将是一种必然的趋势。总体而言,Nucleo-F091RC开发板是一款非常好的ARM Cortex-M0入门学习套件。 参考资料
以上评测文章由社区特邀爱板网撰写,原文地址:http://www.eeboard.com/evaluation/st-nucleo-f411re-review/# P( U0 y- D( t. Q- U; p* L: [ |
http://yunpan.cn/cy7IAMx5P6Q92 (提取码:2e1b)
9 H( x7 O$ B3 O8 D9 c) b
关于F072 和F091等新芯片MDK4 MDK5不支持的问题,可以通过以下路径添加支持:
0 {2 w9 M) c1 {- h4 ?
..\STM32F0xx_StdPeriph_Lib_V1.5.0\Utilities\Third_Party\Toolchains_STM32F030xC_STM32F070x6_STM32F070xB_Patches\MDK-ARM STM32F030xC_STM32F070xB_STM32F070x6_Support.zip
+ r1 y8 \: M, U4 `4 E1 h6 U
当然如果你喜欢iar则选另外一个.: I9 t1 w A! ^/ G
我看到你那个帖子内容不全,这个是我们邀请爱板网发布的评测文章,我都搬过来啦
是的,Nucleo都用这个,真心不喜欢
. @8 M) X; g, B9 a( s) T' v9 G" E
重复发帖。。。nucleo的拓展板去哪找啊
注意 .cubemx已经升级 ,选哟手动去官网下载. 用他自己的update居然查不出来.哈哈 .升级后 就可以看到091了