工具与软件:
大家好!
通过 SPI 使用 simplelink_cc13xx_cc26xx_sdk_7_40_00_77的 CAN 驱动程序来驱动 TCAN455X
can_open()被传递 CAN_PARAMS 结构:
typedef struct { const CAN_MsgRAMConfig *msgRAMConfig; /*!< Pointer to message RAM configuration */ const CAN_BitRateTimingRaw *bitTiming; /*!< Pointer to raw bit timing values */ CAN_EventCbk eventCbk; /*!< Pointer to event callback function */ uint32_t eventMask; /*!< Mask of events to call event callback function for */ void *userArg; /*!< User supplied arg for callback */ } CAN_Params;
观察:提供的'eventCbk'函数被调用为已配置,但其'userArg'参数始终为 NULL ,即 params->userArg,传递给 can_open()不会按预期传递到回调:
* @param[in] userArg A user supplied argument specified * in CAN_Params. */ typedef void (*CAN_EventCbk)(CAN_Handle handle, uint32_t event, uint32_t data, void *userArg);
can_open ()不会将成员'userArg'传输到 can_Object -下面是 source/TI/drivers/can.c 中 can_open ()的代码片段、其中有人预计他会发生:
"Params"也会传递到 source/TI/drivers/can/TCAN455X.c 中的 can_initDevice ()、但那里也忽略结构成员"userArg"。
这是一个已知限制、很快就会解决吗? 我想使用"userArg"、现在必须使用全局变量来解决该问题。
此致、
沃尔夫冈