/STM32CANFlasher

A Tools for Flash the STM32 ARM Chip using CAN-Bus by C#

Primary LanguageC#Apache License 2.0Apache-2.0

STM32CANFlasher

A Tools for Flash the STM32 ARM Chip using CAN-Bus by C#

功能

支持操作

  • ACK
  • Read
  • Write
  • Erase
  • GetState
  • Go

测试环境

  • .Net Framework 3.5
  • STM32F4DISCOVERY Kit(MB997B)
  • STM32F40_41xxx-LED_Demo.hex(此程序会让开发板上PD12 PD13引脚连接的LED3 LED4闪烁)
  • 连接CAN2接口(PB5 PB13)至CAN收发器并与USB-CAN模块连接.
  • 将BOOT0引脚拉高
  • 执行STM32CANFlasher.exe -HexFile="STM32F40_41xxx-LED_Demo.hex" -EraseOpt=OnlyUsed -FlashSectionFile="stm32f4xx_1mb.xml"

命令行参数

  • -HexFile="待烧写的hex格式文件,必须设定"
  • -EraseOpt=None(不擦除)/OnlyUsed(仅仅擦除hex文件使用的部分,需要配合FlashSection文件.)/All(全片擦除),默认All.
  • -FlashSectionFile="Flash页描述文件"(C# XML串行化的JobMaker.FlashSectionStruct[]格式文件,EraseOpt为OnlyUsed时需设定)
  • -ShowReceiveSend=yes/y/no/n(是否显示收发的CAN数据包,默认no)
  • -CANDevFile="第三方CAN模块驱动接口.Net DLL文件名"(需要与可执行程序在同一目录,默认:ECANDev.dll)
  • -CANDevClass="DLL中继承了BUAA.Device.ICAN接口的类的全名"(默认:BUAA.Device.ECANDev)
  • -Timeout=操作超时时间(单位s,默认2s)
  • -TimeoutErase=擦除操作超时时间(单位s,默认20s)
  • -JumpToFlash=yes/y/no/n(是否在完成烧写后跳转至Flash程序执行起始位置,默认跳转位置为0x8000000,默认no)
  • -CANDeviceNo=CAN设备号(默认0)
  • -CANPortNo=CAN设备端口号(默认0)
  • -CANBPS=CAN波特率(默认125000,ST官方要求)
  • -CANSendOnce=yes/y/no/n(是否单次发送CAN数据包,默认no)

支持芯片

  • STM32F105xx
  • STM32F107xx
  • STM32F405xx
  • STM32F407xx
  • STM32F415xx
  • STM32F417xx
  • STM32F427xx
  • STM32F429xx
  • STM32F437xx
  • STM32F439xx

参考信息

  • ST AN3154 "CAN Protocol Used in the STM32 Bootloader" V5
  • ST AN2606 "Microcontroller System Memory Boot Mode" V20