stm32j_link与串口下载几个问题

1.zet6转c8t6几个改变的地方:

  (1)Device类型修改;

  (2)C/C++下的Define中的STM32F10X_HD修改为STM32F10X_MD;

  (3)Flash Download下要将芯片类型修改为Med_density 128k这种;

  (4)工程启动文件startup里面换成startup_stm32f10x_md.s。

2.自动下载电路与j_link的冲突:

我的ISP自动下载电路为:


我用这个自动下载电路将左上角四个跳线帽都接上之后,用j_link下载程序出现如下错误:**JLink Warning: Could not set S_RESET_ST;然后总是出问题,后来再网上找到答案“”“把CPU的复位信号不要连到其它专用复位芯片上就OK了。”将我的电路图的左上角3跳线帽摘掉果然就好了。

接着我又试了一下自动下载电路,这下又将3跳线帽加上,结果完全可以实现自动下载。DTR与RTS的接法可以使用,但是DTR直接接了RESET,这个导致j_link下载失败,以后可以考虑下面我找的一个比较好的自动下载电路:


该电路用三极管将DTR管脚与RSET分开,正常情况下三极管不导通,因此使用j_link下载时不会受影响。

3.STM32的几种启动模式

BOOT0接GND,BOOT1接GND.那就是正常的启动模式,从flash加载代码.
而BOOT0接V3.3,BOOT1接GND.则是ISP模式,也就是串口更新代码.

其次,你要了解STM32 ISP下载代码的过程.
首先BOOT0接V3.3,然后复位STM32.STM32就会加载ISP代码(固化存储在内部),从而进入ISP模式.此时便可以通过串口下载程序了.

最后再来看看一键下载是怎么实现的呢?
从原理图可知:DB9串口的RTS控制BOOT0,DTR控制RST.
我们要达到下载的目的,就必须先让RTS拉高BOOT0(设置BOOT0为1),然后再让DTR控制RST为低(STM32为低电平复位).然后再释放RTS为高(停止复位),然后再开始串口下载代码(此时BOOT0可以为高,也可以为低).

所以我们看到mcuisp连接过程是:

DTR电平置高(3-12V),复位(DTR接了RST)
RTS置低(-3--12V),选择进入BootLoader(RTS接了BOOT0)
...延时100毫秒
RTS电平变高(+3-+12V)释放复位(释放复位,但是此时BOOT0为高,所以进入ISP模式)
开始连接...4, 接收到:1F (连接成功)
在串口COM0连接成功@230400bps,耗时437毫秒

DTR维持高
【需要注意的是  DTR_N是DTR的反相电平  RTS_N是RTS的反相电平】



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值