OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 22278|回复: 37

第一篇 STM32F030芯片开发环境搭建MDK & IAR

[复制链接]

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-5-6 21:49:33 | 显示全部楼层 |阅读模式
本帖最后由 八度空间 于 2016-5-6 22:23 编辑

STM32F030是ST的M0内核的MCU,同系列Pin To Pin其他的,具体大家可以对比一下,我就对比了F051和F103的

运行平台:官方的STM32F030开发板
编译环境:MDK & IAR(由于本人没用过IAR编译,所以花时间折腾一番,还行重点讲解一下IAR开发F0的教程,也给自己一个学习的备份

一、MDK环境搭建
1.1 使用官方的库函数开发,可以到官方网站上下载F0对应的库函数
1.2 库函数包下载之后。。。(省略1万字)
1.3 下载F0在MDK中的PACK
1.4 打开MDK开始搭建编译环境,如同F1的一样,只是选择芯片不一样
1.png
1.5 开始编写代码,官方的板子带了两颗LED,可以写一个流水灯的程序。。。(省略1万字)
二、IAR环境搭建
2.1 IAR和MDK的PK,网上也很多人做了对比,我就不说了,总的来说IAR的编译速度比MDK要快,代码密度也好,编辑环境没有MDK做的那么的友好,脑补(代码补全)功能没有MDK做的好,不过可以用Source Insight做编辑,IAR做编译,也行
2.2 安装官方最新的(不知道是不是哈)IAR软件For ARM的(别装错了啊),至于和谐什么的请度娘
2.3 拷贝相关的文件到文件夹(注意:IAR这货工程中不能有中文路径,MDK倒是可以
2.png
2.3 打开IAR软件,建立工程,首先建立一个wordspace(IAR是基于这货进行建立工程的)
3.png
2.4 建立工程
4.png
5.png
点击OK之后,在弹出的对话框中选择工程保存的路径,保存工程,完成后
6.png
2.5 建立工程文件目录,这货的目录可以层叠的,MDK不行
7.png
建立目录完成
8.png
2.6 往目录添加文件
9.png
添加文件好像没有MDK爽,不知道是我没找到更好的途径还是怎么样
2.7 新建一个main文件,并添加到USER文件夹
2.8 打开sys.h文件,添加F0的库函数文件(我的文件做了自动适配的
10.png
2.9 编写LED的IO驱动函数,建立HAL文件夹,在工程目录中,创建LED代码存放文件
11.png
我这个LED兼容好几个平台的哈
2.10 编写main函数
27-12.png
点个灯,很容易
2.11 接下来就是重头戏了,环境配置
13.png
2.12 选择芯片
14.png
2.13 选择printf函数输出,刚开始发现系统默认的(Auto)不行,后来选择Full就可以了,不过需要移植一下(后面讲解)
15.png
2.14 添加.h文件路径
16.png
完成后的样子
17.png
为了方便拷贝,需修改一下,适应自动寻找
18.png
$PROJ_DIR$\表示的是IAR工程所在的目录,..\代表的是上一层目录
2.15 添加库函数需要定义
19.png
2.16 选择仿真/下载器,多种可选,根据自己使用的来就行
20.png
2.17 选择下载文件目标
21.png
2.18 输出HEX文件或者其他的,自行选择
22.png
2.19 设置完成后,点击OK关闭配置对话框,点击主界面的Make按钮,或者工程名称鼠标右键选择Make或者Rebuild All也行
23.png
24.png
2.20 看到底下的输出框,显示0个错误和0个警告,说明编译通过的,连接ST-LINK(配置中选择的下载/仿真器),将生成的代码下载到板子上,看到两个LED灯闪烁,说明移植是成功的
三、有个蛋疼的事情就是(我手上有两块STM32F030的板子)官方那个板子没焊接外部晶振,可以正常跑,我手上自己DIY(人家送的)的板子就不行,后来查看了一下库文件,发现HSI内有初始化代码,后来补上了,才正常
3.1 官方库没有HSI的代码
25.png
自己添加的
26.png
四、关于printf函数移植
打开usart.c文件,在头部位置,有MDK的移植,在这里增加IAR的移植,文中,我增加了自动选择的选项
27.png
五、F0中没有位段操作,F1和F4都有,其他没用过,不清楚,所以自己就定义了一个用结构体,具体打开sys.h文件
28.png
29.png
30.png F0中发现没有u8、u16、u32这样的定义,所以自己添加了一个
33.png
六、F0位段操作使用
宏定义,打开hal_led.h文件
31.png
在main函数中调用
32.png
同样编译没有错误和警告,下载到板子,同样看到两个灯在闪烁


12.png

STM32F030RB.zip

8.96 MB, 下载次数: 20823

现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2016-5-6 22:15:59 | 显示全部楼层
顶一个,最近也在用stm32f0,感觉跟f1相差不大,f0去掉了GPIO的重定义功能,改成了附加功能。
半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-5-6 22:23:54 | 显示全部楼层
东北小辉辉 发表于 2016-5-6 22:15
顶一个,最近也在用stm32f0,感觉跟f1相差不大,f0去掉了GPIO的重定义功能,改成了附加功能。

现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

37

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
421
金钱
421
注册时间
2013-6-4
在线时间
14 小时
发表于 2016-5-7 00:02:00 | 显示全部楼层
请问版主有没有试过Segger Emnedded Studio这个编译器如何搭建STM32开发环境呢?还有别人用过这个环境吗?
回复 支持 反对

使用道具 举报

105

主题

522

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1386
金钱
1386
注册时间
2012-10-23
在线时间
97 小时
发表于 2016-5-7 10:51:26 | 显示全部楼层
最近在使用F0的Cubumx库,使用起来效率太低了
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-5-7 12:16:28 | 显示全部楼层
bht890811 发表于 2016-5-7 00:02
请问版主有没有试过Segger Emnedded Studio这个编译器如何搭建STM32开发环境呢?还有别人用过这个环境吗?

还真没有用过
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-5-7 12:16:46 | 显示全部楼层
miaoguoqiang 发表于 2016-5-7 10:51
最近在使用F0的Cubumx库,使用起来效率太低了

没有用过这货
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

37

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
421
金钱
421
注册时间
2013-6-4
在线时间
14 小时
发表于 2016-5-7 16:33:32 | 显示全部楼层

J-Link官方出的IDE,就有个跨平台的好处,但是我真心觉得比IAR好用,希望能推广开吧。
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-5-7 22:16:18 | 显示全部楼层
bht890811 发表于 2016-5-7 16:33
J-Link官方出的IDE,就有个跨平台的好处,但是我真心觉得比IAR好用,希望能推广开吧。

你在用么?效果如何?
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2016-5-7 23:17:55 | 显示全部楼层
好家伙,谢谢分享。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-5-8 12:43:51 | 显示全部楼层
正点原子 发表于 2016-5-7 23:17
好家伙,谢谢分享。

原子哥光临本贴了感谢感谢!!!
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2013-4-11
在线时间
13 小时
发表于 2016-5-8 12:53:00 | 显示全部楼层
能预定原子的F030开发板吗,我想预定一套,寄存器版本的。
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-5-8 12:54:39 | 显示全部楼层
ROCK 发表于 2016-5-8 12:53
能预定原子的F030开发板吗,我想预定一套,寄存器版本的。

原子好像没有F0的开发板
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-5-8 12:54:58 | 显示全部楼层
ROCK 发表于 2016-5-8 12:53
能预定原子的F030开发板吗,我想预定一套,寄存器版本的。

自己选个芯片DIY一块吧
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2013-4-11
在线时间
13 小时
发表于 2016-5-8 12:56:51 | 显示全部楼层
我用STM32F030K6,感觉操作不是很方便,想买寄存器版的学习学习。
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2016-7-14
在线时间
8 小时
发表于 2016-7-19 09:34:34 | 显示全部楼层
楼主,为啥我这添加不了.h文件的路径,选到那个路径但是没有
回复 支持 反对

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2016-7-19 09:39:04 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-7-19 18:38:51 | 显示全部楼层
为了明天 发表于 2016-7-19 09:34
楼主,为啥我这添加不了.h文件的路径,选到那个路径但是没有

你怎么操作的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2016-7-14
在线时间
8 小时
发表于 2016-7-21 10:22:00 | 显示全部楼层

恩,找到了,选到文件夹就对了
回复 支持 反对

使用道具 举报

11

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1154
金钱
1154
注册时间
2014-11-9
在线时间
228 小时
发表于 2016-7-26 12:48:22 | 显示全部楼层
我也是没有用IAR的人,一直是MDK
回复 支持 反对

使用道具 举报

11

主题

179

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
1103
注册时间
2016-7-19
在线时间
168 小时
发表于 2017-1-16 11:17:47 | 显示全部楼层
厉害了,谢谢分享!!!
回复 支持 反对

使用道具 举报

0

主题

29

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1714
金钱
1714
注册时间
2016-11-23
在线时间
138 小时
发表于 2017-1-18 08:32:26 | 显示全部楼层
准备选用此芯片了。
回复 支持 反对

使用道具 举报

0

主题

29

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1714
金钱
1714
注册时间
2016-11-23
在线时间
138 小时
发表于 2017-2-14 20:11:27 | 显示全部楼层
也准备用来开发。
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2017-2-27
在线时间
7 小时
发表于 2017-2-27 21:45:06 | 显示全部楼层
谢谢分享,好好学习
回复 支持 反对

使用道具 举报

21

主题

144

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1132
金钱
1132
注册时间
2015-7-31
在线时间
155 小时
发表于 2017-3-11 14:30:46 | 显示全部楼层
好东西~~~~~~~~~~
回复 支持 反对

使用道具 举报

25

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2016-12-6
在线时间
40 小时
发表于 2017-3-11 16:13:24 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2016-8-18
在线时间
28 小时
发表于 2017-3-13 08:56:49 | 显示全部楼层
感谢八度空间前辈,
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2012-9-16
在线时间
4 小时
发表于 2017-5-9 14:00:10 | 显示全部楼层
感谢提供,正好用上
回复 支持 反对

使用道具 举报

12

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2014-9-13
在线时间
31 小时
发表于 2017-5-15 01:22:00 | 显示全部楼层
本帖最后由 xyz1015231411 于 2017-5-15 01:24 编辑

楼上,我加进去怎么报错啊
main.c(25): error:  #109: expression preceding parentheses of apparent call must have (pointer-to-) function type
这样定义的#define LED1         PAout(2)         在 程序中的LED2那里报错,
QQ截图20170515012300.jpg
QQ截图20170515012316.jpg
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2017-5-15 12:26:20 | 显示全部楼层
xyz1015231411 发表于 2017-5-15 01:22
楼上,我加进去怎么报错啊
main.c(25): error:  #109: expression preceding parentheses of apparent cal ...

F0内核没有位段操作的,所以要自己定义,我工程sys.h中有做
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

12

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2014-9-13
在线时间
31 小时
发表于 2017-5-15 17:54:33 | 显示全部楼层
八度空间 发表于 2017-5-15 12:26
F0内核没有位段操作的,所以要自己定义,我工程sys.h中有做

是要写成这样吗?                                                              
#define LED1         PAout->b2
#define LED2         PAout->b3   
写成这样才可以
写成如下这样不行
#define LED1         PAout(2)
#define LED2 PAout(3)
回复 支持 反对

使用道具 举报

12

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2014-9-13
在线时间
31 小时
发表于 2017-5-15 18:07:42 | 显示全部楼层
八度空间 发表于 2017-5-15 12:26
F0内核没有位段操作的,所以要自己定义,我工程sys.h中有做

有加你的sys.h文件
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2017-5-15 23:20:57 | 显示全部楼层
xyz1015231411 发表于 2017-5-15 17:54
是要写成这样吗?                                                              
#define LED1         PAout->b2
#define LED2         PAout->b3   

上面那个可以
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

32

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
385
金钱
385
注册时间
2011-11-21
在线时间
32 小时
发表于 2017-6-15 10:58:38 | 显示全部楼层
这个要mark下
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2017-8-6
在线时间
0 小时
发表于 2017-8-7 11:08:09 | 显示全部楼层
代理兆易创新(GD)32-bit ARM架构,Cortex-M3、M4内核MCU,可提供技术支持等服务;
GD32F130系列 M3内核与STM32F030/051系列,硬件pin to pin兼容;烧录器、寄存器、开发环境完全兼容;
欢迎来电咨询探讨,邱先生 电话:136 8955 5135;
回复 支持 反对

使用道具 举报

6

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2017-12-12
在线时间
47 小时
发表于 2017-12-13 08:24:51 | 显示全部楼层
请问楼主用的是哪个PDF浏览器啊
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2017-12-13 09:26:29 | 显示全部楼层
知行天下 发表于 2017-12-13 08:24
请问楼主用的是哪个PDF浏览器啊

祈福、2345、极速PDF都可以
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6248
金钱
6248
注册时间
2018-6-27
在线时间
534 小时
发表于 2018-11-20 09:27:51 | 显示全部楼层
谢谢分享,学习学习。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 07:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表