mirror of
https://github.com/goldenfishs/MRobot.git
synced 2026-04-01 05:17:13 +08:00
准备测试
This commit is contained in:
@@ -481,10 +481,11 @@ class bsp_can(BspPeripheralBase):
|
||||
f" can{can_num}_filter.FilterFIFOAssignment = {fifo_assignment};",
|
||||
f" HAL_CAN_ConfigFilter(&hcan{can_num}, &can{can_num}_filter);",
|
||||
f" HAL_CAN_Start(&hcan{can_num});",
|
||||
f" HAL_CAN_ActivateNotification(&hcan{can_num}, CAN_IT_RX_FIFO0_MSG_PENDING);",
|
||||
"",
|
||||
f" // 注册回调函数",
|
||||
f" BSP_CAN_RegisterCallback({self.enum_prefix}_{name}, HAL_CAN_RX_FIFO0_MSG_PENDING_CB, BSP_CAN_RxFifoCallback);",
|
||||
f" // 注册{instance}回调函数",
|
||||
f" BSP_CAN_RegisterCallback({self.enum_prefix}_{name}, HAL_CAN_RX_FIFO0_MSG_PENDING_CB, BSP_CAN_RxFifo0Callback);",
|
||||
"",
|
||||
f" HAL_CAN_ActivateNotification(&hcan{can_num}, CAN_IT_RX_FIFO0_MSG_PENDING);",
|
||||
""
|
||||
])
|
||||
|
||||
@@ -511,10 +512,11 @@ class bsp_can(BspPeripheralBase):
|
||||
f" can1_filter.FilterFIFOAssignment = CAN_RX_FIFO0;",
|
||||
f" HAL_CAN_ConfigFilter(&hcan1, &can1_filter);",
|
||||
f" HAL_CAN_Start(&hcan1);",
|
||||
f" HAL_CAN_ActivateNotification(&hcan1, CAN_IT_RX_FIFO0_MSG_PENDING);",
|
||||
"",
|
||||
f" // 注册CAN1回调函数",
|
||||
f" BSP_CAN_RegisterCallback({self.enum_prefix}_{name}, HAL_CAN_RX_FIFO0_MSG_PENDING_CB, BSP_CAN_RxFifo0Callback);",
|
||||
"",
|
||||
f" HAL_CAN_ActivateNotification(&hcan1, CAN_IT_RX_FIFO0_MSG_PENDING);",
|
||||
""
|
||||
])
|
||||
|
||||
@@ -522,22 +524,14 @@ class bsp_can(BspPeripheralBase):
|
||||
name, instance = can2_config
|
||||
init_lines.extend([
|
||||
f" // 初始化 CAN2 - 使用 FIFO1",
|
||||
f" CAN_FilterTypeDef can2_filter = {{0}};",
|
||||
f" can2_filter.FilterBank = 14;",
|
||||
f" can2_filter.FilterIdHigh = 0;",
|
||||
f" can2_filter.FilterIdLow = 0;",
|
||||
f" can2_filter.FilterMode = CAN_FILTERMODE_IDMASK;",
|
||||
f" can2_filter.FilterScale = CAN_FILTERSCALE_32BIT;",
|
||||
f" can2_filter.FilterMaskIdHigh = 0;",
|
||||
f" can2_filter.FilterMaskIdLow = 0;",
|
||||
f" can2_filter.FilterActivation = ENABLE;",
|
||||
f" can2_filter.FilterFIFOAssignment = CAN_RX_FIFO0;",
|
||||
f" HAL_CAN_ConfigFilter(&hcan1, &can2_filter); // 通过 CAN1 配置",
|
||||
f" can1_filter.FilterBank = 14;",
|
||||
f" can1_filter.FilterFIFOAssignment = CAN_RX_FIFO1;",
|
||||
f" HAL_CAN_ConfigFilter(&hcan2, &can1_filter); // 通过 CAN1 配置",
|
||||
f" HAL_CAN_Start(&hcan2);",
|
||||
f" HAL_CAN_ActivateNotification(&hcan2, CAN_IT_RX_FIFO0_MSG_PENDING);",
|
||||
"",
|
||||
f" // 注册CAN2回调函数",
|
||||
f" BSP_CAN_RegisterCallback({self.enum_prefix}_{name}, HAL_CAN_RX_FIFO0_MSG_PENDING_CB, BSP_CAN_RxFifo0Callback);",
|
||||
f" BSP_CAN_RegisterCallback({self.enum_prefix}_{name}, HAL_CAN_RX_FIFO1_MSG_PENDING_CB, BSP_CAN_RxFifo1Callback);",
|
||||
f" HAL_CAN_ActivateNotification(&hcan2, CAN_IT_RX_FIFO1_MSG_PENDING);",
|
||||
""
|
||||
])
|
||||
|
||||
@@ -565,34 +559,27 @@ class bsp_can(BspPeripheralBase):
|
||||
f" can1_filter.FilterFIFOAssignment = CAN_RX_FIFO0;",
|
||||
f" HAL_CAN_ConfigFilter(&hcan1, &can1_filter);",
|
||||
f" HAL_CAN_Start(&hcan1);",
|
||||
f" HAL_CAN_ActivateNotification(&hcan1, CAN_IT_RX_FIFO0_MSG_PENDING);",
|
||||
"",
|
||||
f" // 注册CAN1回调函数",
|
||||
f" BSP_CAN_RegisterCallback({self.enum_prefix}_{name}, HAL_CAN_RX_FIFO0_MSG_PENDING_CB, BSP_CAN_RxFifo0Callback);",
|
||||
"",
|
||||
f" HAL_CAN_ActivateNotification(&hcan1, CAN_IT_RX_FIFO0_MSG_PENDING);",
|
||||
""
|
||||
])
|
||||
|
||||
# CAN2 - FIFO0
|
||||
# CAN2 - FIFO0
|
||||
if can2_config:
|
||||
name, instance = can2_config
|
||||
init_lines.extend([
|
||||
f" // 初始化 CAN2 - 使用 FIFO0",
|
||||
f" CAN_FilterTypeDef can2_filter = {{0}};",
|
||||
f" can2_filter.FilterBank = 14;",
|
||||
f" can2_filter.FilterIdHigh = 0;",
|
||||
f" can2_filter.FilterIdLow = 0;",
|
||||
f" can2_filter.FilterMode = CAN_FILTERMODE_IDMASK;",
|
||||
f" can2_filter.FilterScale = CAN_FILTERSCALE_32BIT;",
|
||||
f" can2_filter.FilterMaskIdHigh = 0;",
|
||||
f" can2_filter.FilterMaskIdLow = 0;",
|
||||
f" can2_filter.FilterActivation = ENABLE;",
|
||||
f" can2_filter.FilterFIFOAssignment = CAN_RX_FIFO0;",
|
||||
f" HAL_CAN_ConfigFilter(&hcan1, &can2_filter); // 通过 CAN1 配置",
|
||||
f" can1_filter.FilterBank = 14;",
|
||||
f" can1_filter.FilterFIFOAssignment = CAN_RX_FIFO0;",
|
||||
f" HAL_CAN_ConfigFilter(&hcan2, &can1_filter); // 通过 CAN1 配置",
|
||||
f" HAL_CAN_Start(&hcan2);",
|
||||
f" HAL_CAN_ActivateNotification(&hcan2, CAN_IT_RX_FIFO0_MSG_PENDING);",
|
||||
"",
|
||||
f" // 注册CAN2回调函数",
|
||||
f" BSP_CAN_RegisterCallback({self.enum_prefix}_{name}, HAL_CAN_RX_FIFO0_MSG_PENDING_CB, BSP_CAN_RxFifo0Callback);",
|
||||
f" HAL_CAN_ActivateNotification(&hcan2, CAN_IT_RX_FIFO0_MSG_PENDING);",
|
||||
""
|
||||
])
|
||||
|
||||
@@ -603,22 +590,14 @@ class bsp_can(BspPeripheralBase):
|
||||
can_num = ''.join(filter(str.isdigit, instance))
|
||||
init_lines.extend([
|
||||
f" // 初始化 {instance} - 使用 FIFO1",
|
||||
f" CAN_FilterTypeDef can{can_num}_filter = {{0}};",
|
||||
f" can{can_num}_filter.FilterBank = {filter_bank};",
|
||||
f" can{can_num}_filter.FilterIdHigh = 0;",
|
||||
f" can{can_num}_filter.FilterIdLow = 0;",
|
||||
f" can{can_num}_filter.FilterMode = CAN_FILTERMODE_IDMASK;",
|
||||
f" can{can_num}_filter.FilterScale = CAN_FILTERSCALE_32BIT;",
|
||||
f" can{can_num}_filter.FilterMaskIdHigh = 0;",
|
||||
f" can{can_num}_filter.FilterMaskIdLow = 0;",
|
||||
f" can{can_num}_filter.FilterActivation = ENABLE;",
|
||||
f" can{can_num}_filter.FilterFIFOAssignment = CAN_RX_FIFO0;",
|
||||
f" HAL_CAN_ConfigFilter(&hcan1, &can{can_num}_filter); // 通过 CAN1 配置",
|
||||
f" can1_filter.FilterBank = {filter_bank};",
|
||||
f" can1_filter.FilterFIFOAssignment = CAN_RX_FIFO1;",
|
||||
f" HAL_CAN_ConfigFilter(&hcan1, &can1_filter); // 通过 CAN1 配置",
|
||||
f" HAL_CAN_Start(&hcan{can_num});",
|
||||
f" HAL_CAN_ActivateNotification(&hcan{can_num}, CAN_IT_RX_FIFO0_MSG_PENDING);",
|
||||
"",
|
||||
f" // 注册{instance}回调函数",
|
||||
f" BSP_CAN_RegisterCallback({self.enum_prefix}_{name}, HAL_CAN_RX_FIFO0_MSG_PENDING_CB, BSP_CAN_RxFifo0Callback);",
|
||||
f" BSP_CAN_RegisterCallback({self.enum_prefix}_{name}, HAL_CAN_RX_FIFO1_MSG_PENDING_CB, BSP_CAN_RxFifo1Callback);",
|
||||
f" HAL_CAN_ActivateNotification(&hcan{can_num}, CAN_IT_RX_FIFO1_MSG_PENDING);",
|
||||
""
|
||||
])
|
||||
filter_bank += 1 # 为下一个CAN分配不同的过滤器组
|
||||
|
||||
Reference in New Issue
Block a user