feat(can): 反馈报文刷新率逐帧可配置并持久化
STATUS/CONFIG 反馈帧各自独立按 period_ms(1ms 节拍分频,0=停发)发送, 默认 STATUS 1kHz、CONFIG 250Hz,可运行时修改: - 0x0400 扩展格式(DLC=4):[选择器 u16][值 u16],选择器 0x0000=节点 ID (仅单播),0x0100/0x0101=对应帧刷新周期;回 5B ACK,广播只应用不应答 - 0x0401 扩展格式(DLC=2):查询选择器对应值,回 [sel][val](4B); DLC<=1 及 SET DLC 1~2 保持旧格式行为完全不变 - 刷新率经 FlashEEPROM 独立 u16 记录(虚拟地址 0x08/0x09)持久化, 不并入 6 参数 CRC 组,避免老设备升级后整组参数回退默认值 - save_system_config 追加从 RAM 副本回写两条记录,页满 format() 重建后配置不丢失;read() 增加保留字节校验防 CRC 头部字误匹配 - CANFD_all_Send 拆分为 send_status_frame/send_config_frame, 初始化失败上报路径直调 STATUS 帧不受分频影响 GATE_DRIVER_DRV8323 0/1 两种板型均编译通过
This commit is contained in:
+1
-1
@@ -56,7 +56,7 @@ int main(void) {
|
||||
// 初始化失败:持续通过 CAN STATUS 帧上报 InitStatus 错误码
|
||||
// (含电流检测配平超限/无采样帧),上位机无需调试串口即可识别故障模块
|
||||
printf("初始化失败 InitStatus=0x%08X\r\n", init_error_flags);
|
||||
CAN0_transmiter.CANFD_all_Send(); // STATUS 帧字节 32~35 携带错误位图
|
||||
CAN0_transmiter.send_status_frame(); // STATUS 帧字节 32~35 携带错误位图
|
||||
delay_1ms(100);
|
||||
}
|
||||
OTA_initial(); // OTA 初始化,A/B 分区处理
|
||||
|
||||
Reference in New Issue
Block a user