查看: 187|回复: 2
打印 上一主题 下一主题

STM32F030 Nucleo学习笔记(二)使用CooCox开发ARM

[复制链接] qrcode

20

主题

33

帖子

94

积分

注册会员

Rank: 2

积分
94
楼主
跳转到指定楼层
发表于 2015-8-28 05:04 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是通过论坛http://bbs.ickey.cn/group-topic-id-53316.html 方知还有这种工具(很可惜这篇是个引用,原文在2013年就完成了),作为Eclipse的超级粉,怎么可能不为之吸引!(之前还写过篇Eclipse Arduino教程)况且,这个工具是完全免费的!接下来,就由我带你带你走入CooCox的精彩世界吧!

下载安装篇:
由于CooCox下载地址速度在国内真的很慢,我提供百度云盘下载:http://pan.baidu.com/s/1i3AhXJZ
EXE安装就不多说了,分别安装就行。安装好后需在CooCox中指定gcc++路径,上面的教程里有,不再重复。

启动,第一步是设定工作区目录,按Eclipse传统,通常设为.CooCoxworkspace目录,以后搬家也方便。
新建项目
命名
选择Board
咦,里面没有F030 Nucleo,没关系,我们选择恰当的芯片就行,点Back
选择Chip
选择STM32F030R8T6,Nucleo Board的主芯片。
新项目建立,此时只有一个main.c,可以按F7编译一下试试。


如果你看不到这些信息,那是GCC编译器未设置好,你需要在Project目录下Select Toolchain Path中选择GCC++编译器的目录。


接下来,我们尝试点亮Board上面的LED灯,点击Repository窗口里的GPIO
左边Project视图(Eclipse管这个叫View)突然增加了不少文件,这些就是ARM的固件库,暂时我们不用动他。双击最底下的main.c,会看到里面其实还是啥也没有。


接下来,需要借助其他人的例子了,我们引用一些东西,在左上角的Components视图中,选Peripheral.ST - GPIO
右面列出了几个用例,可以先点击view看一下里面到底有啥,比如 GPIO_Blink


看一下代码,哎,正是我想要的“闪烁某个GPIO管脚”,点击Add,它提示代码将会放入example目录里。

再回过头看main.c
自动增加了一行,注释说这是自动被CoIDE加入的,看,连注释都带上了!

在左边选example下的GPIO_Blink.c,双击打开之

这里面就是标准STM32的初始代码+运行代码。
仔细看一下代码,它闪烁的是PC6和PC9,而Nucleo Board上面LED接的是PA5(绿),所以要修改一下。 

此时我对什么是PC什么是PA都不大了解,还有GPIO的各种初始参数都不了解,不过可以先试一下。
我试着吧原来GPIOC给改成了GPIOA,下面的管脚编号给改成了5,其它未动。原文是闪烁了两个LED,但我们只有一个,所以第二个给注释掉了。此处使用了Eclipse强大的IED编辑功能,选中多行,按Ctrl+/ 则全部注释掉。

然后按F7编译一下试试。也可以按图中的编译按钮,不过按F7更方便不是。
编译成功,接下来就是把它写入Nucleo中了。

连接下载器
如果是我,很可能直接点击“下载程序到芯片”!哈,其实这样有可能搞死芯片,不过Nucleo没关系,怎么刷,它都不会坏。

首先,确认下载器的选项,点View 下的 Configuration

此处就是有关编译的参数,暂时我们都不需要理会,选择倒数第二个那个 Debugger,我们要用正确的下载器和调试器。

是ST-Link,OK,这回可以放心的点“下载到芯片”了。


瞬间完成。
满心欢喜的拿起板子一看,啥也没有,根本没有传说中的LED Blink。。。。。 

回到程序,仔细看了一遍,原来是漏改了两处。

重新编译,下载。Blinking 。。。。。


如果一次就成功,带来的满足感远不如失败后的再次尝试,所以,不要怕失败,千辛万苦的尝试中获得的喜悦,才是真正的喜悦!

调试代码
大多数教程到这里就结束了,我不,因为真正有价值的学习才刚刚开始!前面说过,学习ARM首先要选一个IDE,为什么呢?因为IDE带来不仅仅是方便的代码编写,它还有强大的调试环境,接下来就让我们体会下它的强大吧!

选择Debug或按Ctrl+F5

output窗口闪烁一顿以后,会进入调试状态,此时有一个黄色小箭头指向main函数的第一行。

如果再看Debug菜单,你会看到下面这些。
具体如何调试程序,我还是留给你自学吧,活用调试功能是写代码的最好的老师。

Step Into是进入函数,Step Over是从函数跳过,此处我们呢用Step Into。

进入例子函数
如果接下来还用Step Into的话,你就进入系统函数定义了,通常在调试功能时我们不去看系统函数,只有在对系统函数感兴趣或者性能调优时,才去研究系统如何运作的。

接下来我们设置个断点。
在第47行点右键,选Toggle Breakpoint
此处一个红点出现。按F5运行,你就发现黄色箭头停在了红点处。
观察Nucleo板,此时如果LED是灭的,再按一下F11,LED就亮了。
此处,如果还在按F11,你会发现半天系统都没反应。因为在调试状态下,系统的运行速度会大大减慢,这也是调试唯一的问题“减慢系统运行速度”。
调试是门非常有学问的事,活用调试是开发必备技能。

好,用CooCox开发STM32程序第一课完成。接下来会有更多,敬请期待!

资料
CoIDE Quickstart: http://www.coocox.org/book/coocox/coide-dev-manual
Support List:

中文CooCox安装教程:
http://www.holtek.com.cn/china/literature/32Bit/sim_HT32_CooCoxCoIDE-QuickStartv100.pdf

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

1

主题

80

帖子

5

积分

新手上路

Rank: 1

积分
5
沙发
发表于 2015-8-28 05:09 PM | 只看该作者
貌似不错    
回复 支持 反对

使用道具 举报

10

主题

191

帖子

228

积分

中级会员

Rank: 3Rank: 3

积分
228
板凳
发表于 2015-8-29 12:10 AM | 只看该作者
感谢楼主分享,您对论坛一如既往的支持是论坛前进的动力~
回复 支持 反对

使用道具 举报

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

本版积分规则

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