工具/软件:Code Composer Studio
对于 RM46、HalCoGen 生成一个名为 getCanID 的函数。 该代码会像扩展 ID 一样收集消息标识符。 当配置为非扩展时、这意味着11位消息标识符值会像29位标识符一样向左移位。
*
/* sourceId:CAN_sourceId_026 */
/* DesignId:CAN_DesignId_020 */
/*要求:HL_SR537 */
uint32 canGetID (canBASE-t *节点、uint32 MessageBox)
{
uint32 msgBoxID = 0U;
/**-等待 IF2就绪可供使用*/
while ((node->IF2STAT & 0x80U)=0x80U)
{
}/*等待*/
/**-为配置 IF2
*-消息方向-读取
*-数据读取
*-清除报文对象中的 NewDat 位。
*
NOD->IF2CMD = 0x20U;
/**-将消息框编号复制到 IF2 */
/*SAFETYMCUSW 93 S MR:6.1、6.2、10.1、10.2、10.3、10.4 "LDRA 工具问题"*/
节点->IF2NO =(uint8) MessageBox;
/**-等待数据被复制到 IF2中*/
while ((node->IF2STAT & 0x80U)=0x80U)
{
}/*等待*/
/*从仲裁寄存器读取消息框 ID。 *
msgBoxID =(节点->IF2ARB & 0x1FFFFFFFU);
返回 msgBoxID;
}