<i class="pstatus"> 本帖最后由 way2888 于 2014-9-12 19:39 编辑 </i><br>
<br><p>
MCU里面的工程用CD-EWSTM8-1311编译生成,如果1422生成的代码估计有问题的,大致看了下反汇编,貌似1422版本下的把RET指令跳到FLASH里再返回的增加了用户程序和BOOTLOADER合并生成HEX文件,供下载器一次烧写完成完整编程大概介绍一下使用方法吧:</p><p>
合并HEX文件:</p><p>
打开用户的HEX文件,并设置好BOOTLOADER配置,然后点击文件菜单里的合并HEX固件即可让BOOTLOADER和用户程序合为一个文件</p><p>
用户程序下载:</p><p>
首先运行软件,根据自己的编程要求设置好Bootloader的选项,其中包括选择芯片型号,芯片容量,和使用的UART(针对S207,S208,因为它有2个UART),以及使用的通信波特率.</p><p>
如果使用UART自定义接口的,在未保证你的程序一定能响应就绪命令而跳转到Bootloader之前,建议保留使用IO状态进入Bootloader(只在芯片上电的时候,IO状态判定是否进入),如果你设置的Bootloader是禁止IO状态进入的话,而你的应用程序又未调通UART时,这样的情况下升级是会变砖的.因为Bootloader没有强制延时等待升级的功能.</p><p>当设置好你要求的Bootloader后,点击文件菜单里的保存Bootloader,这样就生成你刚才设置的Bootloader文件.再通过下载器(ST-LINK)下载到芯片中.</p><p>
此后,你若需要下载程序只需要打开本软件,打开你要下载的文件,确认当前的Bootloader设置与写进芯片里的设置要一致后,点击下载即可.</p><p>
如果是使用UART自定义接口跳转到Bootloader的话,在点击下载之前,先在帮助里的就绪文本框里输入你应用程序需要的十六进制数据.再点击下载即可.</p><p>
Bootloader更新:</p><p>
首先设置好新的Bootloader设置,除CHIP和SIZE外,其余的可以和芯片里的设置可以不相同(CHIP和SIZE绝对要和写进芯片里的设置要一致)</p><p>
通信里的波特率(记住,不是Bootloader的BPS)必须与芯片内的设置一致,然后点击文件的更新Bootloader,则可更新新设置的Bootloader.</p><p>
更新Bootloader后,再下载用户程序即可(方法见上)</p><p>
举个例子吧:</p><p>
原来写到芯片的UART的BPS是115200,现在希望新Bootloader使用9600通信</p><p>
1.先设置Bootloader的BPS为9600,选择通信的波特率要与芯片的115200一致,</p><p>
2.确认其他设置都匹配,和就绪命令都设置好了,点击更新Bootloader.</p><p>
3.当显示更新完成后,更改通信设置的波特率为9600,再打开你的应用程序升级即可 </p><p>链接: https://pan.baidu.com/s/1IeMhJHUHklh8DbBrdJR7_w 提取码: veg7</p><p><br></p>
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
请问way2888,针对 新版 IAR 编译器的改变,有没有什么应对的办法?
不用IAR自带的库,自己编写,要么直接汇编。这些都不现实,没什么大改动的话直接用软件做好的生成就好了,你的用户程序用什么版本都没关系
我的蓝牙串口,在超级终端里没有可配置项目,自然没法设置波特率,不知道别的蓝牙串口和蓝牙适配器是啥情况,是不是也不能设置波特率。
用Tinyboot的时候,通讯设置里,端口号选蓝牙端口号,波特率设115200。然后开始下载,稍等片刻就报“通信超时错误”。
这时候,不能判断是Tinyboot不支持蓝牙串口,还是下位机没有进入Bootloader模式。
于是,把Tinyboot的通信串口号改成PC的原生串口,再下载,一切OK。看来是Tinyboot不支持蓝牙串口。
下位机串口,物理结构是:TX一分二,一路送RS232电平转换到PC,一路送蓝牙RX。下位机的RX,采用线与结构,同时接收PC和蓝牙的TX。
开两个超级终端,一个连原生串口,一个连蓝牙串口,两边都可以与单片机正常通信,收发均可。
明显感觉,蓝牙串口的延时比原生串口大。
不知道楼主有没有时间和条件研究下这个问题?谢谢了!
mark……
一周热门 更多>