Part Number:TMS320F28377D
你好,我还有如下的疑问点:
同样的程序,在不同的平台,发现CAN的通信是发出不同的结果。
1.我现在用的是IF2用于接收,其NewDat如何清零?TxRqst被置为1,会不会引起发送数据帧变换?
同样的程序,同样的CPU(双核,但我们只使用一个核),但头文件一个采用了S,一个采用了D,采用S的收发正常,采用D的会发送不期望的数据帧(从测试看,应该是因为TxRqst被置为1时发送的)
如果TxRqst被置为0,在NewDat==1时读取数据并清NewDat,测试发现NewDat清零后在没有接收数据也会被置为1,模拟测试,接收100帧数据,NewDat会被置为1大约1700~2000次
我想弄清楚,如果IF2用于接收数据,能不能将其TxRqst置为1?
在TxRqst置为0时,NewDat为何被置位那么多次?
同样的CPU(双核,但作为单核使用),只是头文件引用不同(如F2837xS_can.h,F2837xD_can.h),为何发送情况不同?
Green Deng:
你好,你的问题有点奇怪啊,F28377D和F28377S是同一型号的不同配置,D是双核,S是单核。理论上你用D芯片的话话应该对应的是D后缀的头文件。
你的工程是自己编写的还是引用的TI例程?
NewDat 位置位是指示已接收到新数据(尚未被 CPU 看到)。 当 CPU 读取消息对象时,会重置 NewDat 位。
另外可以看一下这个帖子:e2echina.ti.com/…/faq-tms320f280025