修复了一个can的bug

This commit is contained in:
ws 2025-07-04 17:52:36 +08:00
parent 1cb37c4dac
commit 13bb73b72f
4 changed files with 8 additions and 14 deletions

View File

@ -28,7 +28,8 @@
//================任务通知,时间组================//
//事件组
#define EVENT_RC (1<<1)
#define EVENT_CAN (1<<2)
#define EVENT_CAN1 (1<<2)
#define EVENT_CAN2 (1<<3)
//================任务通知================//
//运球

View File

@ -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

View File

@ -26,7 +26,7 @@ void FunctionCan(void *argument)
task_struct.stack_water_mark.can = osThreadGetStackSpace(osThreadGetId());
#endif
waitNewDji();
//waitNewDji();
djiMotorEncode();
can2MotorEncode();

View File

@ -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)