IWR1642BOOST,如何使用CANFD接收数据?

Other Parts Discussed in Thread: SYSBIOS

CANFD已经初始化并配置完成,编译并没有出错,程序加载到雷达后运行后出错。

console显示:

ti.sysbios.gates.GateMutex: line 99: assertion failure: A_badContext: bad calling context. See GateMutex API doc for details.
xdc.runtime.Error.raise: terminating execution

我在canfd.h中找到了CANFD_getData()这个函数,但是我在SDK的canfd测试程序中没有找到使用这个函数的例子。

CANFD的接收有参考吗?

程序中哪里可能出了问题?

感谢

  • 你好,

    你有参考过CANFD驱动的例程么?
    C:\ti\mmwave_sdk_03_05_00_04\packages\ti\drivers\canfd\test\xwr16xx
  • 就是参考的这个,不过是参考的是SDK2.0.0.4中的。
    我看历程中CANFD接收都是只创建了接收对象rxMsgObjHandle = CANFD_createMsgObject (canHandle, &rxMsgObjectParams, &errCode);
    后续并没有使用CANFD_getData 这个函数,所以不太明白CANFD接收数据的使用方法。
    test中的MCAN Internal loopback test 和MCAN External loopback test都是成功的,目前可以通过CANFD发送数据,但是接收不了数据,电脑一给1642发送数据就报错。
  • 你好,

    CANFD驱动测试例程里,数据接收是在MCANAppCallback回调函数里实现的。测试例程里有可以使用两个EVM,一个EVM发送CANFD信号,一个接收的用例(mcanEVM_EVMTest)。你需要通过修改MCANMode的值来决定代码是发送还是接收。
  • 之前在做测试例程的时候并没有更改MCANMode,稍后会进行尝试
x 出现错误。请重试或与管理员联系。