|
打算通过 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 固件升级的标准实现思路应该是什么? |
在 STM32CubeIDE 中生成 ioc 配置文件
在 Bootloader 运行期间保持 GPIO 引脚电平状态不变
把 MCO1 时钟源选为 PLLCLK会怎样
I2C 错误代码含义
CubeIDE 下载程序时不整片擦除芯片
在编译C++ STM32项目时,如何将.hpp文件扩展名与合并了头文件声明和源文件定义的模板
sscanf 函数无法正确读取浮点值
TIM5 1μs 定时无法触发回调函数
如何将 LoRa993 模块与 STM32F401RE 对接
STM32F407 音频输入输出时 IFFT 无法正常工作
微信公众号
手机版
或者说保证它通讯信息独立既可。