CANFD介绍
FD全称是 Flexible Data-Rate,顾名思义,表示CAN-FD 的帧报文具有数据场波特率可变的特性,即仲裁场合数据控制场使用标准的通信波特率,而到数据场就会切换为更高的通信波特率,车端常用的为2Mbit/s和5Mbit/s,从而达到提高通信速率的目的
CAN
CAN FD
GD32C103/GD32C113介绍
GD32C113是GD32C103的升级版,带两路CANFD
GD32C113 CAN引脚
can0
can0
示例
extern can_trasnmit_message_struct g_transmit_message;
extern can_receive_message_struct g_receive_message;
extern FlagStatus can0_receive_flag;
extern FlagStatus can1_receive_flag;
can_parameter_struct can_parameter;
can_fdframe_struct can_fd_parameter;
can_fd_tdc_struct can_fd_tdc_parameter;
启用时钟
// 启用GPIO时钟
rcu_periph_clock_enable(RCU_GPIOA);
rcu_periph_clock_enable(RCU_GPIOB);
// 启用CAN时钟
rcu_periph_clock_enable(RCU_CAN0);
rcu_periph_clock_enable(RCU_CAN1);
// 根据实际配置复用时钟
// rcu_periph_clock_enable(RCU_AF);
初始化CAN FD
/* configure CAN0 GPIO */
gpio_init(GPIOA, GPIO_MODE_IPU, GPIO_OSPEED_50MHZ, GPIO_PIN_0); // rx
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_1); // tx
/* configure CAN1 GPIO */
gpio_init(GPIOB, GPIO_MODE_IPU, GPIO_OSPEED_50MHZ, GPIO_PIN_12); // rx
gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ