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 30、31引脚
GPIO_setPinConfig(CANRXA_GPIO_CFG);
GPIO_setPinConfig(CANTXA_GPIO_CFG);
// 初始化CAN控制器
CAN_initModule(CANA_BASE);
// 设置CAN,使用CANA,系统时钟,波特率1MHz,位时序20Tq
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
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 30、31引脚
GPIO_setPinConfig(CANRXB_GPIO_CFG);//GPIO_17_CANRXB
GPIO_setPinConfig(CANTXB_GPIO_CFG);//GPIO_16_CANTXB
// 初始化CAN控制器
CAN_initModule(CANB_BASE);
// 设置CAN,使用CANA,系统时钟,波特率1MHz,位时序20Tq
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
接入CANA时
接入CANB时