分享

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

 杭州文轩 2016-07-27
 本帖最后由 八度空间 于 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.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.3 打开IAR软件,建立工程,首先建立一个wordspace(IAR是基于这货进行建立工程的)

2.4 建立工程


点击OK之后,在弹出的对话框中选择工程保存的路径,保存工程,完成后

2.5 建立工程文件目录,这货的目录可以层叠的,MDK不行

建立目录完成

2.6 往目录添加文件

添加文件好像没有MDK爽,不知道是我没找到更好的途径还是怎么样
2.7 新建一个main文件,并添加到USER文件夹
2.8 打开sys.h文件,添加F0的库函数文件(我的文件做了自动适配的

2.9 编写LED的IO驱动函数,建立HAL文件夹,在工程目录中,创建LED代码存放文件

我这个LED兼容好几个平台的哈
2.10 编写main函数

点个灯,很容易
2.11 接下来就是重头戏了,环境配置

2.12 选择芯片

2.13 选择printf函数输出,刚开始发现系统默认的(Auto)不行,后来选择Full就可以了,不过需要移植一下(后面讲解)

2.14 添加.h文件路径

完成后的样子

为了方便拷贝,需修改一下,适应自动寻找

$PROJ_DIR$\表示的是IAR工程所在的目录,..\代表的是上一层目录
2.15 添加库函数需要定义

2.16 选择仿真/下载器,多种可选,根据自己使用的来就行

2.17 选择下载文件目标

2.18 输出HEX文件或者其他的,自行选择

2.19 设置完成后,点击OK关闭配置对话框,点击主界面的Make按钮,或者工程名称鼠标右键选择Make或者Rebuild All也行


2.20 看到底下的输出框,显示0个错误和0个警告,说明编译通过的,连接ST-LINK(配置中选择的下载/仿真器),将生成的代码下载到板子上,看到两个LED灯闪烁,说明移植是成功的
三、有个蛋疼的事情就是(我手上有两块STM32F030的板子)官方那个板子没焊接外部晶振,可以正常跑,我手上自己DIY(人家送的)的板子就不行,后来查看了一下库文件,发现HSI内有初始化代码,后来补上了,才正常
3.1 官方库没有HSI的代码

自己添加的

四、关于printf函数移植
打开usart.c文件,在头部位置,有MDK的移植,在这里增加IAR的移植,文中,我增加了自动选择的选项

五、F0中没有位段操作,F1和F4都有,其他没用过,不清楚,所以自己就定义了一个用结构体,具体打开sys.h文件


F0中发现没有u8、u16、u32这样的定义,所以自己添加了一个

六、F0位段操作使用
宏定义,打开hal_led.h文件

在main函数中调用

同样编译没有错误和警告,下载到板子,同样看到两个灯在闪烁


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多