GD32F470系列-CAN配置(500K,90%采样点)

一、CAN的时钟和波特率设置

1.先找到CAN时钟,GD32F470的CAN用的是APB1,最大是60M主频

GD32F470系列-CAN配置(500K,90%采样点)_第1张图片

2.在根据用户手册里描述的CAN波特率算法GD32F470系列-CAN配置(500K,90%采样点)_第2张图片

 CAN波特率= APB1(60MHz)/(SYNC_SEG+BS1+BS2)/prescaler

 采样点=(1+BS1)/(SYNC_SEG+BS1+BS2)

比如要实现500K的速率,90%采样点,对应的参数如下:

SYNC_SEG=1, BS1=8,BS2=1,Prescaler=12;

二、库函数配置

1.引入库

代码如下(示例):

 /* initialize CAN */
    can_parameter.time_triggered = DISABLE;
    can_parameter.auto_bus_off_recovery = DISABLE;
    can_parameter.auto_wake_up = DISABLE;
    can_parameter.auto_retrans = ENABLE;
    can_parameter.rec_fifo_overwrite = DISABLE;
    can_parameter.trans_fifo_order = DISABLE;
    can_parameter.working_mode = CAN_LOOPBACK_MODE;
    /* configure baudrate to 500kbps */
    can_parameter.resync_jump_width = CAN_BT_SJW_1TQ;
    can_parameter.time_segment_1 = CAN_BT_BS1_8TQ;
    can_parameter.time_segment_2 = CAN_BT_BS2_1TQ;
    can_parameter.prescaler = 12;
    can_init(CANX, &can_parameter);


你可能感兴趣的:(网络)