运行 c2000ware里的F2837xD 的 CAN例程 C:\ti\c2000\C2000Ware_1_00_06_00\device_support\f2837xd\examples\cpu1\can_loopback_interrupts, 发现CAN_IF2ARB 寄存器的ID 位 并没有更新成当前接收的message obj的 ID ,请问这是怎么回事?应该怎么配置才能是ID位更新呢?
Susan Yang:请问您现在是使用自己的板子测试还是TI的launchpad? 现在通信成功了吗?我们的CAN示例程序并非为Launchpad定制,所以对应的I/O初始化可能需要更改成您对应的。另外时钟方面也需要注意。
运行 c2000ware里的F2837xD 的 CAN例程 C:\ti\c2000\C2000Ware_1_00_06_00\device_support\f2837xd\examples\cpu1\can_loopback_interrupts, 发现CAN_IF2ARB 寄存器的ID 位 并没有更新成当前接收的message obj的 ID ,请问这是怎么回事?应该怎么配置才能是ID位更新呢?
Susan Yang:
您直接使用的例程未做修改?下图是我的测试结果
另外附上相关的论坛链接 https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/784738?tisearch=e2e-sitesearch&keymatch=TMS320F280049
运行 c2000ware里的F2837xD 的 CAN例程 C:\ti\c2000\C2000Ware_1_00_06_00\device_support\f2837xd\examples\cpu1\can_loopback_interrupts, 发现CAN_IF2ARB 寄存器的ID 位 并没有更新成当前接收的message obj的 ID ,请问这是怎么回事?应该怎么配置才能是ID位更新呢?
Charles Ji:
回复 Susan Yang:
谢谢您,从您的运行的例程来看好像是用的C:\ti\c2000\C2000Ware_1_00_06_00\device_support\f2837xd\examples\cpu1\can_loopback_interrupts这个吧,这个例程我试过确实ID 可以更新显示出来,
但我用的是driverlib里的例程 C:\ti\c2000\C2000Ware_1_00_06_00\driverlib\f2837xd\examples\cpu1\can\can_ex2_loopback_interrupts.c 这个例程,id是不更新显示的,忙烦您再帮忙看一下,谢谢
运行 c2000ware里的F2837xD 的 CAN例程 C:\ti\c2000\C2000Ware_1_00_06_00\device_support\f2837xd\examples\cpu1\can_loopback_interrupts, 发现CAN_IF2ARB 寄存器的ID 位 并没有更新成当前接收的message obj的 ID ,请问这是怎么回事?应该怎么配置才能是ID位更新呢?
Susan Yang:
回复 Charles Ji:
请您看一下can_ex2_loopback_interrupts.c内的说明
The CAN peripheral is configured to transmit messages with a specific CAN ID.
该例程使用特定的ID,所以没有更新显示
运行 c2000ware里的F2837xD 的 CAN例程 C:\ti\c2000\C2000Ware_1_00_06_00\device_support\f2837xd\examples\cpu1\can_loopback_interrupts, 发现CAN_IF2ARB 寄存器的ID 位 并没有更新成当前接收的message obj的 ID ,请问这是怎么回事?应该怎么配置才能是ID位更新呢?
Charles Ji:
回复 Susan Yang:
您好, 我还是不能理解,
在我看来can_ex2_loopback_interrupts和 can_loopback_interrupts 这两个例程应该都是同一个功能,两个里面都有The CAN peripheral is configured to transmit messages with a specific CAN ID.这句话,
不同的是can_ex2_loopback_interrupts用的是最新的driverlib ,
而can_loopback_interrupts 用的是deprecated 里的driverlib,所以两个例程的配置函数都是不一样的,
但是can_loopback_interrupts 这个例程,我能看出IFR2ARB 里的ID 位在实时更新的,
而can_ex2_loopback_interrupts这个例程,IFR2ARB 里的ID 位不更新,可以被随便改
我的问题就是,是不是使用新的这个driverlib,需要配置哪个函数,才能读出显示ID 位,:) , 如果我理解的不对,还请您指正
运行 c2000ware里的F2837xD 的 CAN例程 C:\ti\c2000\C2000Ware_1_00_06_00\device_support\f2837xd\examples\cpu1\can_loopback_interrupts, 发现CAN_IF2ARB 寄存器的ID 位 并没有更新成当前接收的message obj的 ID ,请问这是怎么回事?应该怎么配置才能是ID位更新呢?
Susan Yang:
回复 Charles Ji:
试了一下确实在DATA在一直更新,但是ID没有更新。我研究一下后给您回复
运行 c2000ware里的F2837xD 的 CAN例程 C:\ti\c2000\C2000Ware_1_00_06_00\device_support\f2837xd\examples\cpu1\can_loopback_interrupts, 发现CAN_IF2ARB 寄存器的ID 位 并没有更新成当前接收的message obj的 ID ,请问这是怎么回事?应该怎么配置才能是ID位更新呢?
Charles Ji:
回复 Susan Yang:
太感谢了
运行 c2000ware里的F2837xD 的 CAN例程 C:\ti\c2000\C2000Ware_1_00_06_00\device_support\f2837xd\examples\cpu1\can_loopback_interrupts, 发现CAN_IF2ARB 寄存器的ID 位 并没有更新成当前接收的message obj的 ID ,请问这是怎么回事?应该怎么配置才能是ID位更新呢?
Susan Yang:
回复 Charles Ji:
很抱歉,现在才给您回复
我咨询了美国的工程师,他们也是出现了这样的情况,正在修改调试中
http://e2e.ti.com/support/microcontrollers/c2000/f/171/p/799958/2966758#2966758
运行 c2000ware里的F2837xD 的 CAN例程 C:\ti\c2000\C2000Ware_1_00_06_00\device_support\f2837xd\examples\cpu1\can_loopback_interrupts, 发现CAN_IF2ARB 寄存器的ID 位 并没有更新成当前接收的message obj的 ID ,请问这是怎么回事?应该怎么配置才能是ID位更新呢?
Charles Ji:
回复 Susan Yang:
谢谢您,等待中
运行 c2000ware里的F2837xD 的 CAN例程 C:\ti\c2000\C2000Ware_1_00_06_00\device_support\f2837xd\examples\cpu1\can_loopback_interrupts, 发现CAN_IF2ARB 寄存器的ID 位 并没有更新成当前接收的message obj的 ID ,请问这是怎么回事?应该怎么配置才能是ID位更新呢?
Charles Ji:
回复 Susan Yang:
您好,请问有结果了吗,我升级到了c2000ware 2.00.2,还是一样的问题。