Part Number:TMS320F280049COther Parts Discussed in Thread:LAUNCHXL-F280049C
CAN.C中
void
CAN_initModule(uint32_t base)
{
//
// Check the arguments.
//
ASSERT(CAN_isBaseValid(base)); //这句不执行是不是会对后面的循环造成影响呢?包括后面循环不出去是不是前面不执行CANA还是CANB的原因导致的呢?
while(((HWREGH(CANA_BASE + CAN_O_ES) & CAN_ES_TXOK)) != CAN_ES_TXOK)
Susan Yang:
shipeng huang 说:ASSERT(CAN_isBaseValid(base)); //这句不执行是不是会对后面的循环造成影响呢?
会的,可以查看代码
//***************************************************************************** //***************************************************************************** // //! \internal //! //! Checks a CAN base address. //! //! \param base is the base address of the CAN controller. //! //! This function determines if a CAN controller base address is valid. //! //! \return Returns \b true if the base address is valid and \b false //! otherwise. // //***************************************************************************** #ifdef DEBUG static inline bool CAN_isBaseValid(uint32_t base) {return((base == CANA_BASE) ||(base == CANB_BASE)); } #endif理论上会返回base值,即CANA/CANB的宏定义值。我是用的开发板测试的,可以正常返回base值
,
shipeng huang:
1、LaunchPadXL-28377S板卡的canA的GPIO的定义是30、31,#define DEVICE_GPIO_CFG_CANRXA GPIO_30_CANRXA #define DEVICE_GPIO_CFG_CANTXA GPIO_31_CANTXA
先不考虑28377S的实际硬件板卡的原理,因为28377S的我已经调试通过了。
现阶段的问题是LAUNCHXL-F280049C的CANA的GPIO引脚是:CANA的TX是GPIO32,RX是GPIO33,在软件上对不上啊。
我是否可以这么做:
将28377S的程序直接粘贴到280049上然后将GPIO管脚改成GPIO32和33就可以了?其他的不用改么?
,
Susan Yang:
我这边的定义是
#define DEVICE_GPIO_CFG_CANRXA GPIO_33_CANA_RX // "pinConfig" for CANA RX#define DEVICE_GPIO_CFG_CANTXA GPIO_32_CANA_TX // "pinConfig" for CANA TX
和您的是一致的
shipeng huang 说:将28377S的程序直接粘贴到280049上然后将GPIO管脚改成GPIO32和33就可以了?其他的不用改么?
是的,理论上是这样的
您现在的base值返回是多少?能否截图?
,
shipeng huang:
返回值的问题已经解决了是48000
,
shipeng huang:
我不再发新帖了,麻烦您尽快测试吧!这个问题已经经历了很久了,还没解决
,
Susan Yang:
我们将最后统一在最新帖内回复
https://e2echina.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/207511/tms320f280049c