diff --git a/User/bsp/TopDefine.h b/User/bsp/TopDefine.h index 261faac..155863b 100644 --- a/User/bsp/TopDefine.h +++ b/User/bsp/TopDefine.h @@ -28,7 +28,8 @@ //================任务通知,时间组================// //事件组 #define EVENT_RC (1<<1) -#define EVENT_CAN (1<<2) +#define EVENT_CAN1 (1<<2) +#define EVENT_CAN2 (1<<3) //================任务通知================// //运球 diff --git a/User/device/djiMotor.c b/User/device/djiMotor.c index c2f4edb..3906496 100644 --- a/User/device/djiMotor.c +++ b/User/device/djiMotor.c @@ -215,15 +215,13 @@ static osThreadId_t thread_alert; void Dji_Motor_CB() { HAL_CAN_GetRxMessage(&hcan1, CAN_RX_FIFO0, &dji_rx_header, dji_rx_data); + osThreadFlagsSet(thread_alert, EVENT_CAN1); - osThreadFlagsSet(thread_alert, EVENT_CAN); - // osEventFlagsSet(eventReceive, EVENT_CAN); } void can2_Motor_CB(void) { HAL_CAN_GetRxMessage(&hcan2, CAN_RX_FIFO1, &rx_header, rx_data); - - //osThreadFlagsSet(thread_alert, EVENT_CAN); + osThreadFlagsSet(thread_alert, EVENT_CAN2); } /** @@ -234,9 +232,6 @@ void can2_Motor_CB(void) void djiInit(void) { thread_alert = osThreadGetId(); - - - BSP_CAN_RegisterCallback(BSP_CAN_1, HAL_CAN_RX_FIFO0_MSG_PENDING_CB, Dji_Motor_CB); BSP_CAN_RegisterCallback(BSP_CAN_2, HAL_CAN_RX_FIFO1_MSG_PENDING_CB, @@ -250,11 +245,9 @@ void djiInit(void) */ uint32_t waitNewDji() { - // return osEventFlagsWait( - // eventReceive, EVENT_CAN,osFlagsWaitAny, osWaitForever); + // 等待CAN1或CAN2任意一个事件 return osThreadFlagsWait( - EVENT_CAN, osFlagsWaitAll, osWaitForever); - + EVENT_CAN1 | EVENT_CAN2, osFlagsWaitAny, osWaitForever); } #endif diff --git a/User/task/encodeCan.cpp b/User/task/encodeCan.cpp index 261904d..e82dff5 100644 --- a/User/task/encodeCan.cpp +++ b/User/task/encodeCan.cpp @@ -26,7 +26,7 @@ void FunctionCan(void *argument) task_struct.stack_water_mark.can = osThreadGetStackSpace(osThreadGetId()); #endif - waitNewDji(); + //waitNewDji(); djiMotorEncode(); can2MotorEncode(); diff --git a/User/task/userTask.h b/User/task/userTask.h index 89353a7..8411584 100644 --- a/User/task/userTask.h +++ b/User/task/userTask.h @@ -14,7 +14,7 @@ extern "C" { /* 所有任务都要define一个“任务运行频率”和“初始化延时” */ #define TASK_FREQ_SHOOT (500u) -#define TASK_FREQ_CAN (1500u) +#define TASK_FREQ_CAN (500u) #define TASK_FREQ_AI (500u) #define TASK_FREQ_BALL (500u)