请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MMWAVE-L-SDK 工具/软件:
您好、专家、
我们使用 mcan.c 中的 MCAN_init 函数来解决我们在使用器件时遇到的一些连接问题。 我们最近发现、如果在 CAN 总线断开连接时 Put 和 Get 索引不为零、则调用 MCAN_init 将导致 Get 和 Put 之间出现不同步。
下面、我已将观察到的行为分步编写成。
1.向设备发送五条消息、Get 和 Put 索引均以 5 结尾。
2. CAN 总线断开。
调用 MCAN_INIT 以重新初始化连接。 因此、Get 和 Put 索引会复位为 0。
4.重新建立连接。
5. GET 和 Put 索引保持为 0。
6.向设备发送另一条消息。 Put 索引从 0 递增到 1。 Get 索引从 5 递增到 6(返回到前一个位置)。
7、FIFO 填充级别现在错误 (FifoSize+1)–6。
理想情况下、我们将能够解决不同步问题、因为我们对代码的当前行为感到满意。 SDK 中有一个 MCAN_RESET 函数、但遗憾的是 为空。
谢谢你