diff --git a/bsp/at32/libraries/rt_drivers/drv_can.c b/bsp/at32/libraries/rt_drivers/drv_can.c index 6b60187aaba32d77ce4f674c72b21b40f02335ef..df938f2485ca9fad5ce777cea1b0fc447fd67feb 100644 --- a/bsp/at32/libraries/rt_drivers/drv_can.c +++ b/bsp/at32/libraries/rt_drivers/drv_can.c @@ -589,12 +589,16 @@ static int _can_recvmsg(struct rt_can_device *can, void *buf, rt_uint32_t fifo) pmsg->data[7] = rx_message.data[7]; pmsg->len = rx_message.dlc; - pmsg->id = rx_message.id_type; - if (rx_message.id_type == CAN_ID_STANDARD) + { pmsg->id = rx_message.standard_id; + pmsg->ide = RT_CAN_STDID; + } else - pmsg->ide = rx_message.extended_id; + { + pmsg->id = rx_message.extended_id; + pmsg->ide = RT_CAN_EXTID; + } pmsg->rtr = rx_message.frame_type; pmsg->hdr = rx_message.filter_index;