打印
[开发工具]

stm32 串口烧写程序有感

[复制链接]
17551|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuotuzi|  楼主 | 2016-1-27 11:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先下载一个软件 Flash Loader Demo
然后就是把boot0置1 ,boot1置0.
这样就是串口下载模式。
选择好波特率和端口。貌似默认的就行。建议改成com1.其实com0也是没关系的。
最关键的是 stm32单片机的USART只能用usart1。其他几个USART是都不行的。切记。设计电路的时候就要注意这一点。
然后可以打开,简单的按下一步。后面选择domn to device.使用默认设置。然后把hex文件放进去就OK。
其实很简单的。
最后一步,还是要还原BOOT设置。 boot0置0,boot1置0.一定要还原设置。不然程序是不会运行的。
祝你们好运。

沙发
zhuotuzi|  楼主 | 2016-1-27 11:50 | 只看该作者
首先下载一个软件 Flash Loader Demo
然后就是把boot0置1 ,boot1置0.
这样就是串口下载模式。
选择好波特率和端口。貌似默认的就行。建议改成com1.其实com0也是没关系的。
最关键的是 stm32单片机的USART只能用usart1。其他几个USART是都不行的。切记。设计电路的时候就要注意这一点。
然后可以打开,简单的按下一步。后面选择domn to device.使用默认设置。然后把hex文件放进去就OK。
其实很简单的。
最后一步,还是要还原BOOT设置。 boot0置0,boot1置0.一定要还原设置。不然程序是不会运行的。
祝你们好运。

使用特权

评论回复
板凳
尤彼卡| | 2016-1-27 11:58 | 只看该作者
这样配置是串口下载程序到flash的吧,能下到ram吗

使用特权

评论回复
地板
zhuotuzi|  楼主 | 2016-1-27 13:56 | 只看该作者
尤彼卡 发表于 2016-1-27 11:58
这样配置是串口下载程序到flash的吧,能下到ram吗

应该不行吧,没试过啊,那个RAM是运行时话采用的空间啊。不是存程序的。

使用特权

评论回复
5
lwjcw_cn| | 2016-1-27 14:07 | 只看该作者
好好实践,多多看例程,多调试就好了

使用特权

评论回复
6
Micachl| | 2016-1-31 09:57 | 只看该作者
用这个串口下载速度快不快啊

使用特权

评论回复
7
玛尼玛尼哄| | 2016-1-31 10:53 | 只看该作者
首先下载一个软件 Flash Loader Demo
然后就是把boot0置1 ,boot1置0.
这样就是串口下载模式。

使用特权

评论回复
8
zhuotuzi|  楼主 | 2016-2-6 17:21 | 只看该作者
如果没有BOOT1的情况下,就只看对应的Boot0,因为那样肯定也就两种选择吧

使用特权

评论回复
9
quray1985| | 2016-2-8 16:23 | 只看该作者
串口下载是最省钱的下载方式了吧,不用下载器
不过现在的电脑都没串口了

使用特权

评论回复
10
643757107| | 2016-2-8 19:59 | 只看该作者
quray1985 发表于 2016-2-8 16:23
串口下载是最省钱的下载方式了吧,不用下载器
不过现在的电脑都没串口了 ...

是啊,没有串口了。所以未来就是最好集成个USB口的单片机上, 提供USB的下载方式。

使用特权

评论回复
11
734774645| | 2016-2-8 20:01 | 只看该作者
请确保你电脑上的串口工作正常,测试方法,打开一个串口调试助手,短接串口线的TX和RX,然后串口调试助手发送一个字符,比如a,如果串口通信正常,你能在串口调试助手中收到a.
请确保STM32上用于ISP的串口是串口1,IO是PA9,PA10,如果是STM32F2XX,也可以是串口3.
请确保STM32在上电时两个BOOT引脚的电平正确(BOOT0=1,BOOT1=0貌似,看手册).
如以上条件满足,还是无法ISP,请调整串口波特率,比如9600,无校验.

使用特权

评论回复
12
734774645| | 2016-2-8 20:02 | 只看该作者
1.IAP
IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。
通常在用户需要实现IAP功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,第一个项目程序不执行正常的功能操作,而只是通过某种通信管道(如USB、USART)接收程序或数据,执行对第二部分代码的更新;第二个项目代码才是真正的功能代码。
2.Bootloader
在上述IAP的概念中,bootloader就是其第一个项目程序。bootloader主要实现的功能:从串口、USB等媒介接收数据;存储和搬运数据;程序跳转等功能。
3.App程序
对IAP概念中,对第二个项目代码的一种称呼。
4.Ymodem
YModem协议是由XModem协议演变而来的,每包数据可以达到1024字节,是一个非常高效的文件传输协议。

使用特权

评论回复
13
734774645| | 2016-2-8 20:03 | 只看该作者
在Linux下也有串口烧写软件,名为stm32flash。

它的安装很简单,在源代码目录下运行make和make install既可,它会将stm32flash这个可执行文件放置在/usr/bin目录下。

第一步,将STM32芯片的串口连接到RS232上;
第二步,将STM32芯片的BOOT0置高,BOOT1置低;
第三步,上电;
第四步,执行:
    stm32flash /dev/ttyUSB0
    stm32flash -w basic_lib_test.hex -v -g 0 /dev/ttyUSB0
   
它还有read和start的功能,查看help就知道了!
So easy!

使用特权

评论回复
14
734774645| | 2016-2-8 20:05 | 只看该作者
WHY:
时常碰到要更新红酒机的固件,但又不可能每个出差维护的售后工程师都配一个ULINK 2,而最佳的解决方法是用一根USB转RS232连接线连接到STM32 MCU的第一个串口上,然后用STM32串口ISP下载程序来实现固件的更新。

Resource:
   STM32 串口 ISP 下载程序.rar.pdf [迅雷下载]  //(1.0b jun02008)//下载后,去掉.pdf即还原为rar

Appendix1:
  所有STM32产品都内置一个系统存储区,用于放置一段程序,这段程序可以通过STM32的USART1接口接收命令,并执行对内部Flash的擦除和烧写等操作。这段程序可以通过设置芯片上相应管脚(BOOT1和BOOT0)的状态,在芯片复位后进入。
   因为这段程序的功能是在芯片启动后通过USART加载程序到内置Flash存储器,所以称其为Flash Loader。所有STM32产品在出厂时都已预置了Flash Loader,用户只能通过设置BOOT1和BOOT0来使用它,而没有办法擦除或修改它。
   使用Flash Loader的方法,请参考下述文件:
应用笔记:STM32F101xx 和 STM32F103xx系统存储器启动模式 [迅雷下载]
Windows演示软件:STM32F101xx 和 STM32F103xx Flash加载程序演示
演示软件使用手册:STM32F101xx 和 STM32F103xx Flash加载程序演示 [迅雷下载]
   STM32中的Flash Loader使用USART1做为通信端口,它使用8个数据位、1个停止位和偶校验,具有自动波特率检测功能。

使用特权

评论回复
15
mega1702| | 2016-2-9 09:36 | 只看该作者
谢谢分享!!!

使用特权

评论回复
16
734774645| | 2016-2-10 11:02 | 只看该作者
所有STM32产品都内置一个系统存储区,用于放置一段程序,这段程序可以通过STM32的USART1接口接收命令,并执行对内部Flash的擦除和烧写等操作

使用特权

评论回复
17
玛尼玛尼哄| | 2016-2-10 15:39 | 只看该作者
那个RAM是运行时话采用的空间啊。不是存程序的。

使用特权

评论回复
18
yiyigirl2014| | 2016-2-10 18:30 | 只看该作者
我觉得单片机系统不需要搞串口升级功能,首先你要升级时候需要电脑,为何不配置一个SWD的编程器呢。

使用特权

评论回复
19
zhuotuzi|  楼主 | 2016-2-11 17:44 | 只看该作者
这段程序的功能是在芯片启动后通过USART加载程序到内置Flash存储器,所以称其为Flash Loader

使用特权

评论回复
20
mintspring| | 2016-2-11 20:06 | 只看该作者
选择好波特率和端口。貌似默认的就行。建议改成com1.其实com0也是没关系的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

197

主题

3263

帖子

7

粉丝