主题中讨论的其他部件:MOTORWARE, controlSUITE
工具/软件:Code Composer Studio
您好,
我正在汽车器具实验室中实施eCAN传输程序3a。
此参考来自controlSUITE和 spruh18g 第6节- 增强捕获(eCAP)模块中的"eCAan_back2back"程序。
使用来自controlSUITE的个人编辑"eCAN_back2back"程序验证CAN传输。
我将相同 的函数从先前编辑 的"eCAN_back2back"程序复制到 Motorware Lab3a中,并且使用的头文件是"Can.h",位于"C:\ti\motorware\motorware_1_01_00_18\SW\DRIVERS\CAN\src\32b\F28x\f2806x"。 验证can.h文件中结构的关系和主文件中结构调用的关系。
这是我在hal. c文件中所做的唯一更改,它与eCAan_Back2back程序类似:
//启用CAN GPIO
GPIO_setPullup(obj->gpioHandle,gPIO_NUMBER_30,gPIO_Pullup_Enable);
GPIO_setPullup(obj->gpioHandle,gPIO_NUMBER_31,gPIO_Pullup_Enable);
gPIO_setQualification (obj->gpioHandle,gPIO_NUMBER_30,gPIO_Qual_Async);
GPIO_setMode(obj->gpioHandle,gPIO_NUMBER_30,gPIO_30_Mode_CANRXA);
GPIO_setMode(obj->gpioHandle,gPIO_NUMBER_31,gPIO_31_Mode_CANTXA);
正在使用的主要文件上载如下:
e2e.ti.com/.../proj_5F00_lab03a.c
现在,当我运行Lab3a时,CAN传输不起作用,当在调试模式下观察到时,程序在以下循环中得到stucks:
//等待,直到CPU不再具有更改配置寄存器的权限
做
{
ECanaShadow.canes.all = ECanaRegs.canes.all;
} While (ECanaShadow.canes.bit.CCE !=0);//等待CCE位被清除。
根据spruh18g 节16.10 的注释,所有 CANBTC 寄存器都使用非零值进行编程。
此外 ,还会检查Section 16.11 步骤以配置eCAN,但如果您在 提供的文件中查看这些步骤 ,则会更好。
另外,我尝试在 程序中添加步骤6,该程序不是在“eCAN-back2back”程序中。 但这并没有什么不同。
请帮助。
