• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

怎样实现STM32用CAN协议升级程序?

e80bb0aeef990918 2019-03-27 浏览量:4329
怎样实现STM32用CAN协议升级程序?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这个需要自己从其他的uart或者usb的iap升级代码修改,具体操作可以把uart的升级程序工程打开,这个网上有很多例程,可以搜串口IAP升级,然后把can的通讯协议移植进去,最后把uart升级的部分改成can升级就可以了,具体协议和上位机一致就行了
    • 发布于 2019-03-27
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:8
  • 你需要先将IAP升级弄好,然后通过CAN接口将所要升级的固件包发给stm32。这样就可以了。

    现在用的多的是利用串口和USB模拟串口

    • 发布于2019-03-27
    • 举报
    • 评论 0
    • 1
    • 0

  • 可以先参考UART升级固件的IAP例程,CAN只是换了种接口。

    用CAN升级程序,要自己做bootloader,然后制定通讯协议;设备运行时收到升级程序命令,就会跳转进入升级的流程。


    • 发布于2019-03-27
    • 举报
    • 评论 0
    • 1
    • 0

  • 使用CAN接口升级程序,就是一种IAP应用。需要自己做Bootloader。STM32有官方的UART的IAP例程,UART的IAP搞懂了,那CAN就是换个接口。
    • 发布于2019-03-27
    • 举报
    • 评论 0
    • 1
    • 0

  • 要自己写一个boot程序,芯片本来是不支持这种通讯方式烧写程序的

    你的boot接收CAN的数据,再烧写到Flash中,并跳到写入的地址运行

    • 发布于2019-03-27
    • 举报
    • 评论 0
    • 1
    • 0

  • 和 IAP串口升级程序是一样的原理,只不过传输总线变成了CAN总线

    需要修改Bootload做数据接收

    • 发布于2019-03-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 当升到升级指令时, 将其他不相关的任务杀掉,将can的波特率降到50k(上位机也降到50k), 将收到的数据放在flash的后端,当CRC校验正确,进行搬运,最后升级完成。
    • 发布于2019-03-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 要自己写一个单片机上的加载程序,通过CAN通讯,把接收到的程序写入到flash 中,再跳到flash地址运行程序
    • 发布于2019-03-30
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32的IAP升级都是一样的做法,先将固件写入某个特定的flash区域,然后跳转过去执行

    CAN升级也是一样的,通过CAN总线下载固件,CAN总线一般是8个字节一包,收到一包就写一次

    • 发布于2019-03-31
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

怎样实现STM32用CAN协议升级程序?