Lines Matching refs:can_instance

80 static rt_uint32_t cfg_can_default_filter(struct ht32_can *can_instance)  in cfg_can_default_filter()  argument
83 can_instance->filter_cfg.filter_flag |= 1 << filter_num; in cfg_can_default_filter()
84 can_instance->filter_cfg.filter_mag[filter_num].MsgNum = filter_num + 1; in cfg_can_default_filter()
85 can_instance->filter_cfg.filter_mag[filter_num].IdType = (CAN_IdType_Enum)BSP_USING_CAN_ID_MODE; in cfg_can_default_filter()
86 can_instance->filter_cfg.filter_mag[filter_num].IdMask = BSP_USING_CAN_MASK; in cfg_can_default_filter()
87can_instance->filter_cfg.filter_mag[filter_num].FrameType = (CAN_FrameType_Enum)BSP_USING_CAN_FRAM… in cfg_can_default_filter()
88 can_instance->filter_cfg.filter_mag[filter_num].Id = BSP_USING_CAN_ID; in cfg_can_default_filter()
89 CAN_SetRxMsg(can_instance->can_x, &can_instance->filter_cfg.filter_mag[filter_num], 1); in cfg_can_default_filter()
160 struct ht32_can *can_instance = RT_NULL; in ht32_can_configure() local
167 can_instance = (struct ht32_can *)can->parent.user_data; in ht32_can_configure()
168 RT_ASSERT(can_instance != RT_NULL); in ht32_can_configure()
174 ht32_can_gpio_init(can_instance->can_x); in ht32_can_configure()
183 can_instance->cfg.baud_rate = cfg->baud_rate; in ht32_can_configure()
184 can_instance->cfg.mode = cfg->mode; in ht32_can_configure()
210 CAN_DeInit(can_instance->can_x); in ht32_can_configure()
212 CAN_Init(can_instance->can_x, &CAN_InitStruct); in ht32_can_configure()
215 cfg_can_default_filter(can_instance); in ht32_can_configure()
227 struct ht32_can *can_instance; in ht32_can_control() local
231 can_instance = (struct ht32_can *)can->parent.user_data; in ht32_can_control()
232 RT_ASSERT(can_instance != RT_NULL); in ht32_can_control()
241 if (CAN_GetFlagStatus(can_instance->can_x, CAN_FLAG_RXOK)) in ht32_can_control()
244 CAN_ClearFlag(can_instance->can_x, CAN_FLAG_RXOK); in ht32_can_control()
249 if (CAN_GetFlagStatus(can_instance->can_x, CAN_FLAG_TXOK)) in ht32_can_control()
252 CAN_ClearFlag(can_instance->can_x, CAN_FLAG_TXOK); in ht32_can_control()
258 CAN_LastErrorCode_TypeDef lec = CAN_GetLastErrorCode(can_instance->can_x); in ht32_can_control()
263 if (CAN_GetFlagStatus(can_instance->can_x, CAN_FLAG_BOFF)) in ht32_can_control()
266 CAN_BusOffRecovery(can_instance->can_x); in ht32_can_control()
277 CAN_IntConfig(can_instance->can_x, CAN_INT_EIE | CAN_INT_SIE | CAN_INT_IE, ENABLE); in ht32_can_control()
298 cfg_can_default_filter(can_instance); in ht32_can_control()
327 if (can_instance->filter_cfg.filter_flag & (1 << filter_num)) in ht32_can_control()
332 can_instance->filter_cfg.filter_flag |= 1 << filter_num; in ht32_can_control()
333 can_instance->filter_cfg.filter_mag[filter_num].MsgNum = filter_num + 1; in ht32_can_control()
338 can_instance->filter_cfg.filter_mag[filter_num].IdType = CAN_STD_ID; in ht32_can_control()
343 can_instance->filter_cfg.filter_mag[filter_num].IdType = CAN_EXT_ID; in ht32_can_control()
354 can_instance->filter_cfg.filter_mag[filter_num].IdMask = idmask; in ht32_can_control()
358can_instance->filter_cfg.filter_mag[filter_num].IdMask = filter_cfg->items[i].mask; in ht32_can_control()
369 can_instance->filter_cfg.filter_mag[filter_num].FrameType = CAN_REMOTE_FRAME; in ht32_can_control()
373 can_instance->filter_cfg.filter_mag[filter_num].FrameType = CAN_DATA_FRAME; in ht32_can_control()
376 can_instance->filter_cfg.filter_mag[filter_num].Id = filter_cfg->items[i].id; in ht32_can_control()
378 … CAN_SetRxMsg(can_instance->can_x, &can_instance->filter_cfg.filter_mag[filter_num], 1); in ht32_can_control()
398 if (argval != can_instance->cfg.baud_rate) in ht32_can_control()
400 can_instance->cfg.baud_rate = argval; in ht32_can_control()
401 return ht32_can_configure(&can_instance->device, &can_instance->cfg); in ht32_can_control()
415 if (argval != can_instance->cfg.mode) in ht32_can_control()
417 can_instance->cfg.mode = argval; in ht32_can_control()
418 return ht32_can_configure(&can_instance->device, &can_instance->cfg); in ht32_can_control()
426 errtype = can_instance->can_x->ECR; in ht32_can_control()
427 can_instance->device.status.rcverrcnt = ((errtype >> 8) & 0x7f); in ht32_can_control()
428 can_instance->device.status.snderrcnt = (errtype & 0xff); in ht32_can_control()
430 errtype = can_instance->can_x->SR; in ht32_can_control()
431 can_instance->device.status.lasterrtype = (errtype & 0x07); in ht32_can_control()
432 can_instance->device.status.errcode = ((errtype >> 5) & 0x07); in ht32_can_control()
434 rt_memcpy(arg, &can_instance->device.status, sizeof(can_instance->device.status)); in ht32_can_control()
449 struct ht32_can *can_instance = RT_NULL; in ht32_can_sendmsg() local
454 can_instance = (struct ht32_can *)can->parent.user_data; in ht32_can_sendmsg()
455 RT_ASSERT(can_instance != RT_NULL); in ht32_can_sendmsg()
502 while (CAN_TransmitStatus(can_instance->can_x, &tx_msg.cfg_msg) == 0); in ht32_can_sendmsg()
504 CAN_Transmit(can_instance->can_x, &tx_msg.cfg_msg, tx_msg.data, tx_msg.data_len); in ht32_can_sendmsg()
519 struct ht32_can *can_instance = RT_NULL; in ht32_can_recvmsg() local
524 can_instance = (struct ht32_can *)can->parent.user_data; in ht32_can_recvmsg()
525 RT_ASSERT(can_instance != RT_NULL); in ht32_can_recvmsg()
527 msgnum = can_instance->filter_cfg.filter_flag; in ht32_can_recvmsg()
532 …rx_status = CAN_Receive(can_instance->can_x, &can_instance->filter_cfg.filter_mag[i], rx_msg.data,… in ht32_can_recvmsg()
535 LOG_W("ID[%X] rx message over run\r\n", can_instance->filter_cfg.filter_mag[i].Id); in ht32_can_recvmsg()
554 if (can_instance->filter_cfg.filter_mag[i].IdType == CAN_EXT_ID) in ht32_can_recvmsg()
556 pmsg->id = can_instance->filter_cfg.filter_mag[i].Id; in ht32_can_recvmsg()
559 else if (can_instance->filter_cfg.filter_mag[i].IdType == CAN_STD_ID) in ht32_can_recvmsg()
561 pmsg->id = can_instance->filter_cfg.filter_mag[i].Id; in ht32_can_recvmsg()
565 if (can_instance->filter_cfg.filter_mag[i].FrameType == CAN_DATA_FRAME) in ht32_can_recvmsg()
569 else if (can_instance->filter_cfg.filter_mag[i].FrameType == CAN_REMOTE_FRAME) in ht32_can_recvmsg()