CAN发送程序

← 返回 MOC | ← 主页


发送前先确认(配置检查)

  • 标准帧还是扩展帧
  • 数据帧还是远程帧
  • 单次发送还是周期发送
  • 是否需要发送完成回调
  • 总线终端电阻是否正确

单次发送(适合先验证发包是否正常)

// .h
// TODO: 补充 CAN 句柄、发送报文结构体、函数声明
 
// .c
// TODO: 补充初始化、填充 ID 和数据、发送请求代码
 
// ISR
// TODO: 单次发送通常可不写,按实际平台补充发送完成处理
 
// main
// TODO: 补充主函数中发送一帧数据的示例

这种写法适合先验证收发是否打通。


周期发送(适合心跳包或状态上报)

// .h
// TODO: 补充周期发送所需变量、定时标志、函数声明
 
// .c
// TODO: 补充打包数据和按周期发送的代码
 
// ISR
// TODO: 补充定时器中断或调度触发逻辑
 
// main
// TODO: 补充在主循环中按标志位发送的示例

这种写法适合周期上报设备状态。


队列发送(适合多种报文统一调度)

// .h
// TODO: 补充发送队列、索引、函数声明
 
// .c
// TODO: 补充入队、出队、邮箱空闲判断与发送逻辑
 
// ISR
// TODO: 补充发送完成中断中继续发下一帧的处理
 
// main
// TODO: 补充主循环维护发送任务的示例

这种写法适合后续扩展成更完整的发送框架。