|
打算通过 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 固件升级的标准实现思路应该是什么? |
STM32 上同时跑 LWIP 的 TCP 与 UDP 连接
关于最近学习C语言回调和钩子函数的想法,以及对HAL库回调函数的困惑
使用 HAL 库通过串口以 ASCII 形式发送整型数据
USB Host 外部中断按键失效
调用HAL_FLASH_OB_Unlock()直接进入 HardFaultHandler
STM32 增加 WiFi + 以太网的低成本方案
NUCLEO G474RE无法运行程序
STM32F407VGT6 开发板Beak at address "0x0" with no debug information our outside
BootLoader 与 DFU 模式的区别
调度器原子变量相关问题
微信公众号
手机版
或者说保证它通讯信息独立既可。