This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
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)
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值
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就可以了?其他的不用改么?
我这边的定义是
#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
和您的是一致的
将28377S的程序直接粘贴到280049上然后将GPIO管脚改成GPIO32和33就可以了?其他的不用改么?
是的,理论上是这样的
您现在的base值返回是多少?能否截图?