准备测试

This commit is contained in:
2025-08-28 21:38:12 +08:00
parent 006ee185e9
commit d61dfa3634
5 changed files with 55 additions and 44 deletions

View File

@@ -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分配不同的过滤器组