你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

[STM32F072 Nucleo ] 开发板 + 三种开发方法初探 精华  

[复制链接]
harvardx 发布时间:2014-11-3 00:34
本帖最后由 harvardx 于 2014-11-20 16:19 编辑
/ u; \7 H# c0 {9 Q) y2 T2 f4 h* T
) d; }7 J4 s0 z. n# S
QQ图片20141120114344.jpg 抢先体验 买了几十片 STM32F072C8t6回来用用 ,48pin, 2路dac,  只要8块钱哦.
/ S4 ^- f8 |/ {' m' c, f7 [$ G

. |* Q$ G0 A1 i! a6 L5 C, g; k  Z
4.1 ST Nucleo F072RB 特点; H$ h4 m. `( r' E
      和Nucleo其他开发板一样,居然高度扩展性,提供了可行性和扩展性去用STM32F072RBT6单片机进行原型设计.看看我们今天的主角.几个特点也是所有Nucleo 开发板的特点再次强调一下,大家看板子的mcu代号,都有一个R,表明大家都是64 PIN, 所有Nucleo系列的板子,只是换了个单片机,核心的核心,再次重申.
5 b( L' `" d- }) O! g
老生常谈的特点,再次看看这款新出的STM32F072 Nucleo:
1. STM32F072RBT6微控制器,基于ARM Cortex-M0处理器,最高支持48MHz主频
2.  支持Arduino UNO R3 Shield扩展板,微控制器所有IO口引脚通过排针座引出
3.  ST-LINK/V2-1调试器,支持对外部微控制器调试,
4.  3个LED:一个USB通讯LED、一个电源LED、一个用户LED;5. 两个机械按键:复位、用户
6.  USB接口的3个不同功能:虚拟串口、容量存储、调试接口
7.  3种不同供电方式:mini USB接口供电、IO引脚用电、通过Arduino UNO R3 Shield接口供电
8 .支持Gcc IDE、Keil、IAR、embed在线IDE的设计工具
' w# H9 N# O2 L% ~6 b3 O- X

4.2 三种不同的开发途径

1. mbed云端开发(时髦的开发思路)

; q! }1 ^$ I+ u8 @* k9 I0 r& @

首先,连接上usb后,各种驱动安装之后,会出现一个nucleo的U盘.如图1所示:

图8 nucleo下载优盘 128KB.jpg

图8 nucleo下载优盘 128KB

打开以后会看到mbed.htm,点击, 哈哈,开始平步青云,开始了云端开发,直接跳到http://developer.mbed.org/网站,可以实现在线编写程序,新建项目,导入工程,编译的功能,这样相当于一种云端工作的概念,产生bin以后, 下载到刚刚这个u盘,单片机的程序就更新了.听起来很酷. 很多同学要问调试怎么样办?一直在云端掉下来怎么办?虽然此云非彼云,但是有个残酷的事实,摆在大家面前,大项目必须要调试,要保密,不可能一直寄生于云端.何况mbed因为目前还是个国外网站,速度也不是特别给力?......似乎mbed有些鸡肋. 其实mbed早为大家想好了这一切, mbed 只是让大家体验这种高在云端的感觉. mbed的根本作用,还是在于最大程度去解放大家,让工作变得轻松有趣,减少重复低级劳动,把整个nucleo或者其他类似的原型开发板抽象成了一个个对象模型,大家开发的时候,基于对象,面向对象,都可以玩起来了.因为你是用C++在编程哦.我们把mbed当成一个在线生成工程的想到就可以了. mbed ide 具有工程导出功能,可以导出为常见的ide,比如keil ,这样好了.我们用mbed来建立项目框架,同时所有的外设和功能块都抽象好了.这样,在本地,用keil, 用c++代码慢慢完善修改代码吧. 这样之前mbed工程不能在线调试的问题也解决了. 看来是天空飘来一片云, 帮我们把项目的基石打牢而已.: w) h7 R% i& @0 t0 Z2 \
5 P, W, J1 B* p( Y0 {

( D( v$ v1 T$ x! i+ l

+ q5 x1 j! D7 ?. b. r" W

2 . Keil + FW开发方法(传统的开发思路)


" |& H4 d% E0 a6 M: u. t! E' J

mbed是个趋势,也是个时髦的计数, 云端代表了方向;下面说说我们常规的用iar或者kei来开发, 一般还是用keil居多,所以用最新的keil说是.首先在社区下载对应的FW库,地址如下
" U6 f5 O; G- B/ Z分两个分卷: part1 part2
, q1 A1 t. B9 L" @  c% |; Ehttps://www.stmcu.org.cn/download/index.php?act=down&id=7773
; q9 F1 o* C3 V: jhttps://www.stmcu.org.cn/download/index.php?act=down&id=7774# V0 v4 x. g+ l- \( ~% r

k not intalled 或者 communication error字样,这时候,我们就需要安装win7或者xp对应的st-link V2-1的驱动; 在这里下载

1, STM32 Nucleo板上集成的ST-Link/V2-1在Win7,8的PC端USB驱动 - http://comm.eefocus.com/media/download/index/id-206345

2, STM32 Nucleo板上集成的ST-Link/V2-1在Win XP的PC端USB驱动 - http://comm.eefocus.com/media/download/index/id-206346

5 j/ G% B4 C2 v& U


- f* p% i3 C& s% \/ k: C3 I


: e* q% |2 K/ ]  a

3. 基于STM32CubeMx的开发方法(中庸合适的开发思路)

: j) H, x0 p7 f) P; B" d

Keil大家都很熟悉,keil一直升级,目前已经到了keil512,支持最新的M7,
) B8 B0 g" [" \( D1 n/ lst的cubeMx是个好东西 .可惜错过了现场研讨会,听说现场非常1 K+ d7 m( E8 d4 X6 B2 b2 A* V
推荐这个. 没有去成,咱们就自己体验一把吧.我以为就是一个GUI方式的代码生$ p6 G5 {9 |* z1 Z% B
成工具,嘿嘿 ,不过评测以后我就更加赞叹. 居然直接生成keil5的工程文件.不错把
* P# a; z/ T2 \( B! c如何生成keil5的ide工程文件.  体验nucleoL072开发板的使用.
4 J* V% Y2 @( U$ E1 i0 z6 G* P8 ~ 我们先使用st新出的cubeMX工具来自动生成1 \. _$ k) m- w4 {2 Z
一个最简单的keil工程试试看,以keil5.1为例,, u! P* v8 c( ^2 H" k5 s+ R
还可以选择iar 和truestudio,根据需要选择;
  E6 M6 }; Q3 n


% o# }* s: f  \  Z

1 首先打开CubeMX,选择我们的开发板,

图9 利用CubeMx生成keil工程1_选择开发板072.jpg

2 根据自己的需要初始化整个单片机的资源,建立起一种硬件描述的概念,整个单片

都通过HAL层与非常建立连接,增强了通用性,可移植性.通过PC中的CubeMx配置

,从而修改相应的CubeFx(0,1,L0,L1,F4)等软件库集成到我们的工程代码中去,让我


2 `' X& M( @9 @) s; W

们轻松完成对单片机的配置,简化了硬件操作.

$ v& [6 g" F% C

图11 配置单片机072.jpg

图11 配置单片机072


! O% u$ ^# ^) c* t& z5 `6 s

3 下面和第一个有些重复,侧重于系统的软件结构组织. 文件系统 操作系统,


: ^7 I6 W' a: W4 Q

一些内部外设模块,通过引入的这些middleware 和软件栈,让我们的应用能力


) M! W4 k: L: p. p

图12 配置中间件和协议栈.jpg


  h* Y: u; w1 X- t  _& c* b

4 重头戏来了.CubeMX和keil到底有几毛钱关系呢 不会是像siliconlab的configure工具一样只会产生c文件,无法生成ide工程吧. 好期待.我们点击源码生成菜单.当然此处首次使用,可能会让我们选择生成的是.c 还是ide.

图13 生产keil 工程文件.jpg


" ^9 V% U. x' S5 |/ w

图13 生产keil 工程文件

2 `8 ~  I8 l0 E; g

5 见证奇迹的时刻到了.keil 工程横空出世拉.哈哈 ..

图14 打开生成的keil工程文件.jpg

图14 打开生成的keil工程文件

  h9 D/ ]0 F+ i, d

6 对于单片机所用的CubeFxx 软件库, CubeMx软件可以进行对应的选择配置的.

图10 CubeMx配置软件库.jpg

图10 CubeMx配置软件库

. m4 I$ ~1 u+ {/ y

6 I) z3 n7 s0 r9 J6 B- l* e5 z8 J
赞 收藏 8 评论118 发布时间:2014-11-3 00:34

举报

118个回答
羽左 回答时间:2014-11-4 13:57:36
有图有真相啊,好东西,搬走
feiante 回答时间:2014-11-3 10:04:00
mbed ide不习惯的一点是它是在线工具,如果不能上网就不能用了
harvardx 回答时间:2014-11-3 16:38:43
来了 .一个简单的blinkey的例程, 官方的mbed lib 有些问题, 我post这个问题之后,mbed 开发组的人很快提醒我,让我update 最新的mbed,i 结果搞定了2 \1 M# N& b' `  A6 N& t
他的邮件回复:) W) z' o! u  S6 u- m! X
Hello,% h! ?3 J, b" Z0 M& s
$ R: s$ _( {- l
I've just tried and it works for me. Did you update the mbed library ?
* t' D0 k! c% L: [; x% |
1 ^$ S2 O0 g7 R% Z0 l
- z/ X4 E+ t1 f" y& |1 n- ^( y我把用mbed ide在线建立的例程导出为keil工程,大家可以下载 编译看看, 比较和之前的标准库和CubeF0 lib库的区别.
0 M8 m$ Q6 v; @/ W* c' y7 vNucleo_blink_led.zip9 x3 [5 u" Z& H  h' J

Nucleo_blink_led_uvision_nucleo_f072rb.zip

下载

639.74 KB, 下载次数: 84

harvardx 回答时间:2014-11-3 00:53:55
本帖最后由 harvardx 于 2014-11-3 08:45 编辑
$ r' N3 b" ?9 h  ?* h: m+ \7 _# ~2 Z6 \! z! n  X; q
帖子太长.  放不下了.
High哥 回答时间:2014-11-3 11:19:20
写的很好啊!!
slotg 回答时间:2014-11-3 11:23:21
写的很好,感谢分享
左岸右岸 回答时间:2014-11-3 12:33:13
等后续
harvardx 回答时间:2014-11-3 13:20:24
这2天 mbed不太稳定 ,几个例程在072上,不能编译,提示缺少device.h
alexshi 回答时间:2014-11-3 13:36:00
写得不错
harvardx 回答时间:2014-11-3 13:58:40
mbed的工程可以在线导出为常见的几种ide的工程文件,比如keil, 导出后, 就可以把云端的开发拿到线下来开发了. 也解决了在云端不能在线debug的问题.  代码是采用cpp的 ,很酷.大家可以体验一下.我来上传一个工程.
harvardx 回答时间:2014-11-4 11:28:25
必须成为热门帖子.哈哈 ,关于mbed的入门资料大放送了 .6 T) I0 a* Q$ Y1 G3 R" Y
- S9 o" }0 O( Q* C" @$ n" F; e
声明所有资料来源于网络,如有... 请.....

0 mbed 简介.pdf

下载

459.02 KB, 下载次数: 40

2 mbed 中国 - mbed 内存模型.pdf

下载

490.53 KB, 下载次数: 33

4 mbed 中国 - mbed 程序的语言基础.pdf

下载

582.17 KB, 下载次数: 40

5 mbed 中国 - mbed离线开发平台SMeshStudio的安装使用.pdf

下载

964.28 KB, 下载次数: 36

开发教程 10 mbed 中国 - mbed SPI通讯.pdf

下载

581.34 KB, 下载次数: 32

开发教程1 mbed 中国 - mbed的数字输入输出.pdf

下载

597.84 KB, 下载次数: 37

开发教程2 mbed 中国 - mbed驱动数码管.pdf

下载

919.98 KB, 下载次数: 32

开发教程3 mbed 中国 - mbed的模拟输入输出.pdf

下载

623.06 KB, 下载次数: 32

开发教程4 mbed 中国 - mbed的PWM输出.pdf

下载

656.22 KB, 下载次数: 45

开发教程5 mbed 中国 - mbedGPIO中断应用.pdf

下载

487.95 KB, 下载次数: 34

开发教程6 mbed 中国 - mbed 时钟系统.pdf

下载

479.36 KB, 下载次数: 34

开发教程7 mbed 中国 - mbed中的RTC与按键防抖.pdf

下载

496.11 KB, 下载次数: 31

开发教程8 mbed 中国 - mbed UART通讯.pdf

下载

661.61 KB, 下载次数: 37

开发教程9 mbed 中国 - mbed UART通讯综合应用.pdf

下载

670.68 KB, 下载次数: 31

开发教程11 mbed 中国 - mbed TF卡的使用.pdf

下载

475.75 KB, 下载次数: 29

开发教程12 mbed 中国 - mbed I2C通讯.pdf

下载

565.44 KB, 下载次数: 33

开发教程13 mbed 中国 - mbed 单总线通讯.pdf

下载

605.55 KB, 下载次数: 31

开发教程14 mbed 中国 - mbed 802.15.pdf

下载

513.58 KB, 下载次数: 32

开发教程15 mbed 中国 - mbed无线广播数据发送与Sniffer.pdf

下载

645.76 KB, 下载次数: 29

开发教程16 mbed 中国 - mbed点对点无线数据发送.pdf

下载

688.44 KB, 下载次数: 33

开发教程17 mbed 中国 - mbed无线通信高级应用.pdf

下载

650.41 KB, 下载次数: 29

开发教程18 mbed 中国 - mbed-rtos操作系统概述.pdf

下载

555.76 KB, 下载次数: 30

开发教程19 mbed 中国 - mbed-rtos的线程同步.pdf

下载

491.24 KB, 下载次数: 28

开发教程20 mbed 中国 - mbed-rtos的线程间通讯.pdf

下载

470.11 KB, 下载次数: 26

开发教程21 mbed 中国 - mbed-rtos在中断服务程序中的应用.pdf

下载

468.66 KB, 下载次数: 31

开发教程22 mbed 中国 - mbed USBDEVICE通讯应用.pdf

下载

742.76 KB, 下载次数: 30

开发教程23 mbed 中国 - mbed USBHOST通讯应用.pdf

下载

654.26 KB, 下载次数: 35

开发教程24 mbed 中国 - mbed 计算机网络应用基础.pdf

下载

478.96 KB, 下载次数: 29

开发教程25 mbed 中国 - mbed TCP应用程序基础.pdf

下载

677.01 KB, 下载次数: 32

开发教程26 mbed 中国 - mbed UDP程序设计基础.pdf

下载

676.07 KB, 下载次数: 29

开发教程27 mbed 中国 - mbed HTTP应用程序设计.pdf

下载

537.56 KB, 下载次数: 35

开发教程28 mbed 中国 - mbed HTTP服务端程序设计.pdf

下载

611.72 KB, 下载次数: 28

开发教程29 mbed 中国 - mbed NTP、SMTP、WEBSOCKET程序设计.pdf

下载

514.92 KB, 下载次数: 31

开发教程30 mbed 中国 - mbed HTTP-RPC应用.pdf

下载

399.55 KB, 下载次数: 30

harvardx 回答时间:2014-11-4 13:36:32
继续肚子盖楼:" ~+ R9 p5 b& C: D* H
有关mbed的一些连接:) ?  o  x$ v! G4 G
http://www.ifanr.com/457449 围绕 Cortex-M7,ARM 的 mbed 开发平台再升级
3 [* q" d) h" _/ t% v6 d) Q: |6 k; p6 Z5 z" i1 \0 v
5 M, p( L3 f6 ]0 c# {. B
ARM推专为物联网设备打造的开放平台mbed OS_数码_腾讯网1 a/ ~+ Z: F/ G' m) W4 Q8 n$ D
http://digi.tech.qq.com/a/20141030/018851.htm
harvardx 回答时间:2014-11-4 13:51:39
feiante 发表于 2014-11-3 10:04$ ~# N' N! T, w7 g
mbed ide不习惯的一点是它是在线工具,如果不能上网就不能用了
# {1 |/ p3 t4 q6 x4 h4 `
嘿嘿  其实一个平台上一次网就可以了. mbed 早就为我们想好了. 可以支持各种ide导出. 就可以到线下离线开发了. ( n6 W' Z9 [7 \: ~+ X5 m4 H6 i
另外http://mbed.smeshlink.com/ mbed中国,也提供了一个离线的ide 可以尝试一下.
harvardx 回答时间:2014-11-4 13:52:09
harvardx 发表于 2014-11-3 13:20
' Q; I+ l% E; n5 b+ x& G* D7 S这2天 mbed不太稳定 ,几个例程在072上,不能编译,提示缺少device.h
# L; h. P8 L3 f- V) L. I: r
这个问题已经解决了.可能是bug也可能是我没有更新mbed库引起的

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版