主题中讨论的其他器件:LAUNCHXL-F28379D、 C2000WARE、
注意:此错误发生在 LAUNCHXL-F28379D 开发套件上
我正在使用的 C2000示例代码位于:\c2000\C2000Ware_2_00_00_03\driverlib\f2837xd\examples\cpu1\cAN_ex4_simple_transmit
据我了解、TX_MSG_OBJ_ID 与邮箱和接口具有相同的含义。 但是、当我运行代码时、我会在接口的每个选项上接收到消息。
(代码指定了500k 波特、但实际上以250k 的速率将其发送出去)
National Instruments NI USB-8473s 高速 CAN
我的目的是在接口 CAN1上发送一条消息、而在 CAN2上发送另一条消息
我使用以下定义来实现这一点
#define TX_MSG_OBJ_ID 1.
#define TX_MSG_OBJ_ID2
使用此功能对其进行设置
CAN_setupMessageObject (CANB_BASE、TX_MSG_OBJ_ID、0x955555、CAN_MSG_FRAME_EXT、CAN_MSG_OBJ_TYPE_TX、 0、CAN_MSG_OBJ_NO_FLAGS、MSG_DATA_LENGTH);
CAN_setupMessageObject (CANB_BASE、TX_MSG_OBJ_ID2、0x955556、 CAN_MSG_FRAME_EXT、CAN_MSG_OBJ_TYPE_TX、 0、 CAN_MSG_OBJ_NO_FLAGS、MSG_DATA_LENGTH);
然后循环发送
CAN_sendMessage (CANB_BASE、TX_MSG_OBJ_ID、MSG_DATA_LENGTH、txMsgData);
CAN_sendMessage (CANB_BASE、TX_MSG_OBJ_ID2、MSG_DATA_LENGTH、txMsgData);
但是、我在每个接口上都收到这两条消息(下面显示的 CAN7)
P.S. 我似乎也遇到了与其他 CAN 示例项目相同的问题:
c2000\C2000Ware_2_00_00_03\device_support\f2837xd\examples\cpu1\can_external_transmit \cpu01\can_external_transmit
以下是来自 CAN.h 的函数:
Objid 是有问题的变量
// // //! 设置消息对象 //! //! \param base 是 CAN 控制器的基地址。 //! param Objid 是要配置的消息对象编号(1-32)。 //! \param msgid 是用于11或29位 //! 标识符 //! \param 帧是 CAN ID 帧类型 //! \param msgType 是消息对象类型 //! \param msgIDMask 是标识符 //!时使用的 CAN 消息标识符掩码 已启用过滤 //! \param flags 是要为消息设置的各种标志和设置 //! 对象 //! \param msgLen 是消息对象中数据的字节数(0-8) //! //! 此函数设置报文对象所需的各种值。 //! //! 帧参数可以是以下值之一: //! -\b CAN_MSG_FRAME_STD -标准11位标识 符//! -\b CAN_MSG_FRAME_EXT -扩展的29位标识 符//! //! e msgType 参数可以是以下值之一: //! -\b CAN_MSG_OBJ_TYPE_TX -传输消息 //! -\b CAN_MSG_OBJ_TYPE_TX_REMOTE -发送远程消息 //! -\b CAN_MSG_OBJ_TYPE_RX -接收消息 //! -\b CAN_MSG_OBJ_TYPE_RxTx_REMOTE -用 //接收远程消息! 自动传输 //! //! 如果没有标志 //、可以将\e flags 参数设置为\b CAN_MSG_OBJ_NO_FLAGS! 是必需的、或者参数可以是以下 任何一项的逻辑或//! 值: //! -\b CAN_MSG_OBJ_TX_INT_ENABLE -启用发送中断 //! -\b CAN_MSG_OBJ_RX_INT_ENABLE -启用接收中断 //! -\b CAN_MSG_OBJ_USE_ID_FILTER -使用基于消息 ID 的过滤 //! -\b CAN_MSG_OBJ_USE_EXT_FILTER -使用基于扩展// 的过滤! 消息 ID //! -\b CAN_MSG_obj_use_DIR_filter -根据 //的方向使用滤波! 转接 //! -\b CAN_MSG_OBJ_FIFO -消息对象是 FIFO 的一部分 //! 结构、不是最终消息 //! FIFO 中的对象 //! //! 如果筛选基于消息标识符、则值 //! b CAN_MSG_OBJ_USE_ID_FILTER 必须与\e 标志进行逻辑或运算 //! 参数和\b CAN_MSG_OBJ_USE_EXT_FILTER 也必须为 //进行 OR 运算! 基于扩展标识符的消息标识符过滤。 //! //! 注意接收消息对象的\b msgLen 参数是"请勿 //! 但由于断言,其价值应介于0-8之间。 //! //! \无返回。 //// ***************** extern void CAN_setupMessageObject (uint32_t base、uint32_t Objid、uint32_t msgid、 CAN_MsgFrameType 帧、CAN_MsgObjType msgType、 uint32_t msgIDMask、uint32_t flags、uint16_t msgLen);