CanFestival 的buildPDO解析

该段代码展示了在CanFestival中如何构建TPDO(传输层数据对象),从机根据指定的PDO编号和映射参数,将数据封装到CAN数据包中。通过解析TPDO的通讯和映射参数,遍历映射表并获取对象变量,最终完成PDO的填充。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*!
**功能:从机把第numPdo个TPDO对应的数据封装到Message 包中
**
** @param d
** @param numPdo TPDO_com TPDO communication parameters OD entry TPDO_map TPDO mapping parameters OD entry
** @param pdo can数据包
**
** @return
**/

UNS8 buildPDO (CO_Data * d, UNS8 numPdo, Message * pdo)
{

//TPDO 通讯参数 1800 h 的对象
  const indextable *TPDO_com = d->objdict + d->firstIndex->PDO_TRS + numPdo;

//映射参数 1A00 h的对象
  const indextable *TPDO_map = d->objdict + d->firstIndex->PDO_TRS_MAP + numPdo;

  UNS8 prp_j = 0x00;
  UNS32 offset = 0x00000000;
  const UNS8 *pMappingCount = (UNS8 *) TPDO_map->pSubindex[0].pObject;//pdo映射有效对象数

  pdo->cob_id = (UNS16) UNS16_LE(*(UNS32*)TPDO_com->pSubindex[1].pObject & 0x7FF);//支持的cob-id
  pdo->rtr = NOT_A_REQUEST;//非遥控帧

  MSG_WAR (0x3009, "  PDO CobId

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值