主题中讨论的其他器件:C2000WARE
您好!
我正在尝试使用 CAN_getNewDataFlags 函数调用。 尽管我正在成功发送和接收、但它始终返回0。 我怀疑我可能错过了设置中的某些内容、但似乎找不到任何信息。 我有 CCS 11.0和 C2000Ware_4_00
感谢您的帮助、
Dave
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我正在尝试使用 CAN_getNewDataFlags 函数调用。 尽管我正在成功发送和接收、但它始终返回0。 我怀疑我可能错过了设置中的某些内容、但似乎找不到任何信息。 我有 CCS 11.0和 C2000Ware_4_00
感谢您的帮助、
Dave
Hareesh、
我读取整个寄存器、当我在调试器的"Expressions"窗口中显示其内容时、它始终为0。 邮箱(对象) 1-16为发送(wrt 28377D)、17-32为接收。 我包含了接收器件、这正是我真正感兴趣的部分。 我可以通过 CAN 发送数据、数据到达并被放入相应的变量中、但永远不会看到 CAN_NewD_Flg 始终处于设置状态。
感谢您的帮助、
Dave
空 CANA_RX (空)
{
CAN_getNewDataFlags (CAN_NewD_Flg);
如果(CAN_NewD_Flg && 0xFFFFFF0000) missing_cnt = 0;//如果 MB 17-32有新数据、则清除错过的计数
否则为 missed_cnt ++;//如果没有新数据,则增加错过的计数
CAN_readMessage (CANA_base、17、rxMsgData); /MB 17
MODE_REQ = rxMsgData[0]; //模式请求是 LS 字节
RESET_R = rxMsgData[1]; //复位请求为 LS+1字节
CAN_readMessage (CANA_base、18、rxMsgData); //MB 18被忽略
CAN_readMessage (CANA_base、19、rxMsgData); //MB 19
MB_HIGH_TO_FLOAT32 (rxMsgData、HV_SET);
MB_LOW_TO_float32 (rxMsgData、LV_set);
CAN_readMessage (CANA_base、20、rxMsgData); //MB 20
MB_HIGH_TO_FLOAT32 (rxMsgData、HV_I_SET);
CAN_readMessage (CANA_base、21、rxMsgData); //MB 21
MB_HIGH_TO_FLOAT32 (rxMsgData、LV_I_set);
}