CAN接收程序

← 返回 MOC | ← 主页


接收前先确认(配置检查)

  • 使用的是哪一路 CAN 外设
  • 标准帧还是扩展帧
  • 是否需要过滤器
  • 使用轮询、中断还是 FIFO
  • 波特率与对端是否一致

轮询接收(适合先跑通基础收包流程)

// .h
// TODO: 补充 CAN 句柄、接收报文结构体、函数声明
 
// .c
// TODO: 补充 CAN 初始化、轮询读取接收邮箱/FIFO 的代码
 
// ISR
// TODO: 轮询方案通常无需中断,按实际平台补充
 
// main
// TODO: 补充主循环中读取报文并处理的示例

这种写法适合先验证硬件连线、波特率和基础收包是否正常。


中断接收(适合实时性更高的场景)

// .h
// TODO: 补充中断接收所需变量、缓冲区、函数声明
 
// .c
// TODO: 补充开启通知、读取 FIFO、数据解析代码
 
// ISR
// TODO: 补充 CAN 接收中断回调或中断服务函数
 
// main
// TODO: 补充初始化后主循环处理标志位/队列的示例

这种写法适合报文到来后立即处理,减少主循环轮询压力。


FIFO接收(适合报文较多的场景)

// .h
// TODO: 补充 FIFO 接收使用的结构体、缓存区、函数声明
 
// .c
// TODO: 补充 FIFO 配置、读取、清空和解析流程
 
// ISR
// TODO: 补充 FIFO 满/消息挂起中断处理
 
// main
// TODO: 补充批量处理 FIFO 报文的示例

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