|
打算通过 CAN 接口对单个节点进行固件升级。 总共有 3 个节点组网:节点 1 负责下发新版固件,节点 2 接收固件,节点 3 保持待机。CAN 常规通讯波特率为 500kbit/s。 我的设计方案如下: 节点 1 发送一条指令报文,令总线上所有节点暂停自身业务报文发送; 节点 1 再发送指令,让节点 2 进入 Bootloader 模式;同时让节点 3 执行HAL_CAN_DeInit(&hcan2)反初始化 CAN,再调用MX_CAN2_Init_125()将 CAN 重新初始化为 125kbit/s 波特率; 节点 3 配置 CAN 过滤器,屏蔽所有标准帧 ID 报文。 但实际下发同步指令0x80后,节点 2 跳出了 Bootloader,升级流程中断。 总线存在多个节点时,CAN 固件升级的标准实现思路应该是什么? |
调度器原子变量相关问题
运行到 WRITE_REG (FLASH->OPTKEYR, FLASH_OPTKEY1)跳转 HardFaultHandler
STM32F417IG 单端外部时钟旁路HSE Bypass问题
STM32L4A6 SDMMC 无法使用 1.8V IO 驱动 microSD 卡
STM32L4P5xx 系统内 Bootloader:RAM3 能否用作栈指针内存?
在 STM32CubeIDE 中生成 ioc 配置文件
在 Bootloader 运行期间保持 GPIO 引脚电平状态不变
把 MCO1 时钟源选为 PLLCLK会怎样
I2C 错误代码含义
CubeIDE 下载程序时不整片擦除芯片
微信公众号
手机版
或者说保证它通讯信息独立既可。