查看: 2204|回复: 0

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

[复制链接]
  • TA的每日心情
    慵懒
    2015-5-29 12:01
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2013-6-24 17:53:19 | 显示全部楼层 |阅读模式
    分享到:
        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。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-27 11:04 , Processed in 0.116285 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.