多数51单片机(STC系列单片机)的初学者都知道,在51单片机初上电时,可以通过PC机上位机软件将程序引导至bootloader,从而将新程序的hex文件下载至单片机中,完成程序的升级或是更新。在32位Cortex-M3内核下的STM32单片机也是可以做到的。这个上位机软件叫做“Flash loader demonstrator”;短接boot0与VCC后,再次复位即进入到升级模式(System memory boot loader)。

我们需要先下载芯片烧录工具软件Flash loader demonstrator,下载链接地址:http://share.eepw.com.cn/share/download/id/166572。下载后我们解压,安装此文件,之后我们找到STMicroelectronics flash loader.exe,此程序为我们的主角之一——烧录软件。另一个主角是我们的USB转串口工具。下面我来介绍一下软件如何使用:

前提条件

要将USB转串口工具插入电脑上,并在“设备管理器”中查看到虚拟串口的串口号。

烧写过程可分为六步,分别为连接芯片页面,flash状态页面,芯片信息页面,操作配置页面,选项字配置页面,操作进度条页面。

第一步:连接芯片页面

在此页面,我们主要配置串口号,其余参数使用默认值即可。在点击next前,一定要将boot0引脚置高并复位。如果一切正常,软件会转向下一个页面。当然如果出错,则需要重复上述操作。

小提示:

“Cannot open the COM port”:检查是否选择了正确的串口号,并确认此串口未被其它软件使用。

“Unrecognized device”:重启一下微处理器,也许问题就解决了。

“No response from the target”:此错误是芯片供电不正常,或者连线出现问题,极少数情况是芯片坏掉了。

第二步:显示flash存储状态

从上面的图可以看出来,如果芯片的flash未被读、写保护,那么“Remove protection”按键是灰色的;如果芯片的flash被XX了,那么,这个按钮的作用就不用我多说了吧^_^

第三步,芯片信息显示

这个页面基本上是只读的,看看就得了。对于我们初级水平的网友来说,这里暂时快速略过即可。

第四步:操作配置

这个页面是我们的主要操作页面。整个flash的烧写与擦除就集中在这个页面里。在这个页面里我们可以擦除(erase)芯片现有的flash内容。我们可以下载(download)hex程序到芯片flash内,我们也可以使能/去除芯片的保护(disable/enable)功能,还是配置选项字的高级功能。

这里简单说明一下,擦除功能可以选择全部擦除(All),也可以选择擦除部分扇区(selection),点击后即弹出相应区块的页面。

下载flash(download),软件支持英特尔hex,binary与S19摩托罗拉格式。其余部分我们初级使用默认即可。

上传芯片内部flash内容(upload),该功能可以将芯片内部的flash读出来,并转存为相应的格式,其格式支持上面提到三种。

选项字配置,这个配置我们暂时用不到,留到后期高级应用时,我们再回过头来仔细研究其强大的作用与深远的意义。

第六步,进度条显示

第五步,选项字配置我们直接略过,因此,到了第六步,这个页面没有什么好说的,看着即可。

如果出现绿色的进度条并提示下载成功,那么,恭喜你!程序已经成功下载至芯片内部了。这时,需要将boot0置低,复位微处理器,然后微处理器就执行新的程序了!

总结:

软件的使用秉承了一键式服务的理念,一路next即可完成芯片的操作。另外,其次活动的串口下载引脚已经在PCB丝印中标明,在与USB转串口连接时,必须进行交叉连接,即PCB板的Rxd与USB转串口的Txd相连;PCB板的Txd与USB转串口的Rxd相连;两者的GND要相连。

走进STM32世界之Hex程序烧写的更多相关文章

  1. stm32的swd接口的烧写协议是否公开的呢?

    stm32的swd接口的烧写协议是否公开的呢? 需要用一台好的示波器来抓才能有足够的存储深度,保证你能够过滤掉那个该死的50clock. 按照Arm的手册,每次转换发送方都需要一个TNR---但是我观 ...

  2. Nios程序烧写到EPCS方法 - 第1页 - asus119's Blog - EDN China电子设计技术

    Nios程序烧写到EPCS方法 - 第1页 - asus119's Blog - EDN China电子设计技术 这里主要是针对EP3C系列FPGA的Nios程序固化到EPCS中的方法做简要说明.硬件 ...

  3. 【DSP开发】TMS320C66x DSP SPI Nor Flash的程序烧写

    经过一段时间的研究终于把TMS320C6657单核和双核的SPI Nor Flash的程序烧写调通了.工具都是前辈的工作,有需要的可以留下邮箱,我有空可以发. 原理参考钱丰的<TI c66x 系 ...

  4. MDK972-EK开发板裸调试设置和裸机程序烧写(转)

    硬件平台:MDK972-EK开发板编译调试软件:KEIL uVision4仿真工具:JLINK V7/V8   本例子从串口输出信息,如图:       KEIL uVision4调试设置如图所示: ...

  5. esp32(M5STACK)程序烧写(Ubuntu)

    由于我们的开发环境在Ubuntu上,所以介绍一下如何在Ubuntu上烧写esp32的程序 首先下载esptools   pip install esptool           擦除 sudo es ...

  6. 在远程服务器上完成本地设备的程序烧写和调试(基于vivado ,SDK软件)

    在使用vivado和SDK进行设计开发的时候,通常需要登录到远程服务器上进行,但是会遇到一个问题就是,所使用的开发板通常是连接在自己的电脑上(local-PC),那要怎么才能让运行在服务器上的设计软件 ...

  7. adi 程序烧写

    3.2 U-Boot Console Output Here we need set up minicom to open target board serial console. sudo mini ...

  8. stm32串口烧写程序到开发板

    前言:我们如果要断电后重启板子还能使用程序的话就需要通过串口把程序烧写到开发板中. 1.设置Keil编译完之后,生成Hex文件.在工程选项[output]的标签,勾选“Create HEX File” ...

  9. AVR单片机教程——烧写hex文件

    每一次build项目,编译器都会生成多个文件,其中有一个就是hex文件.之前在IDE中配置的external tools,就是把这个hex文件烧写到单片机中去的. 然而,有些时候你想运行别人的程序,但 ...

随机推荐

  1. (cljs/run-at (->JSVM :browser) "语言基础")

    前言  两年多前知道cljs的存在时十分兴奋,但因为工作中根本用不上,国内也没有专门的职位于是搁置了对其的探索.而近一两年来又刮起了函数式编程的风潮,恰逢有幸主理新项目的前端架构,于是引入Ramda. ...

  2. PHP 上传文件大小限制

    配置php.ini文件 (以上传500M以下大小的文件为例) 查找以下选项并修改-> file_uploads = On ;打开文件上传选项 upload_max_filesize = 500M ...

  3. MySQL,Oracle,PostgreSQL通过web方式管理维护, 提高开发及运维效率

    在开发及项目运维中,对数据库的操作大家目前都是使用客户端工具进行操作,例如MySQL的客户端工具navicat,Oracle的客户端工具 PL/SQL Developer, MSSQL的客户端工具查询 ...

  4. Socket实现

    网络实现架构 4.4BSD通过同时对多种通信协议的支持来提供通用的底层基础服务.4.4BSD支持四种不同的通信协议簇: TCP/IP(互联网协议簇) XNS(Xerox网络系统) OSI协议 Unix ...

  5. MVP架构

    一.介绍 MVP(Model View Presenter)架构是从著名的MVC(Model View Controller)架构演变而来的.对于在Android应用中开发就可以视为是MVC架构,布局 ...

  6. Visual Studio 中指定自定义生成事件

    自定义生成事件打开方式 通过指定自定义生成事件,可以在生成开始之前或在它完成之后自动运行命令.在Visual Studio中通过右键项目->属性 进入项目属性菜单. 自定义生成事件的语法 生成事 ...

  7. php后台模板html拼接写法

    public function get_kefu_reply_list(){ $wid=$this->_post('order_id'); if(!$wid){ echo('工单信息获取失败!' ...

  8. [leetcode-474-Ones and Zeroes]

    In the computer world, use restricted resource you have to generate maximum benefit is what we alway ...

  9. golang的并发不等于并行

    先 看下面一道面试题: func main() { runtime.GOMAXPROCS(1) wg := sync.WaitGroup{} wg.Add(20) for i := 0; i < ...

  10. App Extensions篇之Share Extension

    转载请注明出处:http://www.cnblogs.com/zhanggui/p/7119572.html 1.前言 这里主要是对App Extension的一些介绍以及详细给大家介绍一下Share ...