零死角玩转stm32-初级篇之STM32如何编译和下载程序

作者:
上传时间为: 2013-06-24 05:53 PM

    1、如何编译和下载程序

   在拿到开发板之后,很多朋友都想先尝尝鲜,想自己烧写个程序到开发板上,看看效果。下面将演示如何将光盘里面自带的程序烧写到野火STM32开发板上。前提是你的电脑上已经安装了JLINK驱动和MDK开发环境,如果这一部没有完成,请参考《2、JLINK驱动安装与MDK环境搭建》野火STM32开发板光盘上提供的代码都是已经编译好的,直接下载即可。

1.1编译程序

首先打开一个MDK工程,在野火STM32开发板光盘目录下:2-程序+教程第一部分-库开发初级篇5-野火M3-流水灯USER,点击STM32-DEMO.uvproj,打开流水灯这个工程。在弹出的MDK界面中,我们可以看到左边的工具栏中有三个按钮,现在我们从左往右来介绍下这三个按钮的功能。

第一个按钮:Translate 就是翻译当下修改过的文件,说明白点就是检查下有没有语法错误,并不会去链接库文件,也不会生成可执行文件。

第二个按钮:Build 就是编译当下修改过的文件,它包含了语法检查,链接动态库文件,生成可执行文件。

第三个按钮:Rebuild 重新编译整个工程,跟 Build 这个按钮实现的功能是一样的,但有所不同的是它编译的是整个工程的所有文件,耗时巨大。

综上:当我们编辑好我们的程序之后,只需要用第二个Build 按钮就可以,即方便又省时。第一个跟第三个按钮用的比较少。

1.2下载程序

野火STM32开发板有两种下载方式,JLINKV8下载和串口下载。要注意的是:1、JLINK下载的时候,开发板中的拨动开关BOOT0(在开发板边缘,靠近网口)即可以拨到VCC也可拨到GND,但在JLINK下载完程序后,必须将BOOT0拨到GND,好让程序从内部的存储器开始运行程序,所以在JLINK下载时最保险的方法就是将BOOT0拨到GND那端。2、在用串口下载程序的时候,必须将BOOT0开发拨到VCC,在程序下载完后,然后将BOOT0开关拨到GND。

1.2.1 JLINK下载

插上DC-5V电源给开发板供电,再插上JLINK。

点击MDK工具栏中的Load 按钮就可将编译好的程序下载到开发板中。

下载成功之后,程序就会自动运行。如果发现程序没有运行,则可按下开发板中的复位按键。

这里要注意的是:程序在烧写到开发板后是否自动运行,是可以在MDK开发环境:Target Options…->Debug->Setting->Falash DownLoad 中设置的:

如果没有设置为自动运行的话,我们需要在程序下载完毕之后进行手动复位,手动复位可以是按键复位和上电复位。

还有一点要注意的是:在程序下载到开发板之后,开发板要供电,JLINK一端连开发板,另一端连PC,这样程序才能运行。有些用户在下载程序之后,第二次用的时候只是给开发板供电,JLNK的一端只连了开发板而没有连PC,这样程序是不能工作的。要想只在供电的情况下要程序运行,只需把JLNK从开发板中拔掉即可,即只连电源,不接JLINK即可。

1.2.2 串口下载

插上DC-5V电源给开发板供电,插上JLINK,插上自带的串口线(注意是两头都是母的交叉串口线)。

将BOOT0开关拨到VCC。

在这里我们用的串口下载软件是mcuisp,这个一个绿色的软件,可从网上自由下载,野火M3光盘目录下:3-安装软件3-串口下载软件找到。

点击mcuisp.exe,打开mcuisp,mcuisp是很智能的,只要开发板上电且连接好了串口,它就会自动搜索串口,野火STM32开发板用的是电脑主板后面的串口,这个串口都会被默认为是串口1。假如你是笔记本用户,用的是USB转串口,那么端口号可能就不是COM1,需要到我的电脑管理设备管理器端口中查找,然后再修改。

设置波特率为115200,选择要下载的程序。在开发板自带的例程中,可执行文件(hex文件)都在工程目录下的Output这个文件下。

然后点击 开始编程 按钮,如果程序下载成功后则会打印出下面红色框中的信息。

程序下载成功之后,可是在开发板上看不到实验现象呀,怎么办?是不是出什么问题了呀?这是因为我们是通过串口将我们的程序烧写到flash里面去了,而我们想要从flash里面执行我们的程序的话,则需要将BOOT0开关拨到GND,然后按下我们的复位按键就可以看到实验想象了。

在我们点击 开始编程按钮时,还会出现mcuisp一直处于连接的状态,导致程序下载不了,如下截图所示。解决的方法是只需我们按一下开发板中的复位按键即可。

1.2.3 串口下载与JLINK下载对比

串口下载

优点:速度快,下载稳定,特别是下载大型程序的时候。如果你的板子用的的MAX3232是国产的毛片的话,则没有这个优点:(。国产的MAX3232价格是0.3RMB,进口的是3.8RMB。野火STM32开发板用的MAX3232是3.8RMB的,在波特率设置到115200时,仍可稳定下载:)。

缺点:不能够在线调试。

JLINK下载

优点:可以在线调试,开发一大利器,必不可少。有JLINK,犹如倚天屠龙在手:)。

缺点:下载大型程序时速度缓慢,还不稳定,非常蛋疼。但要注意的是调试的时候是不会出现这种情况的。

所以,建议大家在购买开发板的时候,也买一个JLINK。

全部评论 ()

创建讨论帖子

登录 后参与评论
系统提示