新手记录STM32 IAP移植过程中遇到的坑

由于前期是基于STM32Cube生产的code上改的,里面用的库都是HAL的。为了偷懒,在AN4735中找到一个基于HAL库的IAP例程,如下:


打开一看发现是通过USART升级的,但是本人用的是USB的VCP,也就是虚拟串口,虽说是串口,但还是有些不一样。

坑1:USB VCP通信

将USART收发程序改为USB收发程序后,发现Ymodem协议一直不通,没办法只能往里面看,先看了Ymodem协议,链接如下:http://pauillac.inria.fr/~doligez/zmodem/ymodem.txt    

本人使用的SecureCRT 6.5,收到数据包的时候,数据总是不完整。前后搞了两天,因为例程中说用的是超级终端,网上有人说这两者的Ymodem有一点点不通,我不太懂,所以就怀疑SecureCRT发的到底对不对。然后用两台PC,用两根串口对发,发现SecureCRT发的是对的,数据包很好。找了很久发现是,接收的buf太小了,不是UserRxBuffer,不知道这个设置有什么用。


坑2:CRC

CRC校验一直没有计算出对的值,发现初始化的时候设置问题,从历程中复制过去就好了;


坑3:Ymodem协议


例程中Ymodem在结束时的协议与说明Ymodem里的不同,这样SecureCRT会报错,但其实已经更新ok了。

最后面加了几句进去就好了:

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值