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.

TMS320F280049C: 关于同样的初始化函数,我用CANA时我的设备可以识别,使用CANB就无法识别了

Part Number: TMS320F280049C

CANA的初始化函数

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void HAL_setupCAN()
{
//IO 3031
GPIO_setPinConfig(CANRXA_GPIO_CFG);
GPIO_setPinConfig(CANTXA_GPIO_CFG);
// CAN
CAN_initModule(CANA_BASE);
// CAN使CANA,1MHz20Tq
CAN_setBitRate(CANA_BASE, DEVICE_SYSCLK_FREQ, 1000000, 20);
// 使CAN
CAN_enableInterrupt(CANA_BASE, CAN_INT_ERROR|CAN_INT_STATUS|CAN_INT_IE0);
// CANA0
Interrupt_register(INT_CANA0, &canISR);
// 使CANA0
Interrupt_enable(INT_CANA0);
CAN_enableGlobalInterrupt(CANA_BASE, CAN_GLOBAL_INT_CANINT0);
//
// Initialize the transmit message object used for sending CAN messages.
// Message Object Parameters:
// Message Object ID Number: ID
// Message Identifier: CAN_ID
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

CANB的初始化函数

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void HAL_setupCANB(void)
{
//IO 3031
GPIO_setPinConfig(CANRXB_GPIO_CFG);//GPIO_17_CANRXB
GPIO_setPinConfig(CANTXB_GPIO_CFG);//GPIO_16_CANTXB
// CAN
CAN_initModule(CANB_BASE);
// CAN使CANA,1MHz20Tq
CAN_setBitRate(CANB_BASE, DEVICE_SYSCLK_FREQ, 1000000, 20);
// 使CAN
CAN_enableInterrupt(CANB_BASE, CAN_INT_ERROR|CAN_INT_STATUS|CAN_INT_IE0);
// CANA0
Interrupt_register(INT_CANB0, &canBISR);
// 使CANA0
Interrupt_enable(INT_CANB0);
CAN_enableGlobalInterrupt(CANB_BASE, CAN_GLOBAL_INT_CANINT0);
//
// Initialize the transmit message object used for sending CAN messages.
// Message Object Parameters:
// Message Object ID Number: ID
// Message Identifier: CAN_ID
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

接入CANA时

接入CANB时

x 出现错误。请重试或与管理员联系。