mirror of
https://gitee.com/dlmu-cone/tronone-h7-scaffold
synced 2026-07-25 03:47:46 +08:00
修复了吗?没有,很难的啦
This commit is contained in:
@@ -62,6 +62,8 @@ void DMA1_Stream6_IRQHandler(void);
|
|||||||
void ADC_IRQHandler(void);
|
void ADC_IRQHandler(void);
|
||||||
void FDCAN1_IT0_IRQHandler(void);
|
void FDCAN1_IT0_IRQHandler(void);
|
||||||
void FDCAN2_IT0_IRQHandler(void);
|
void FDCAN2_IT0_IRQHandler(void);
|
||||||
|
void FDCAN1_IT1_IRQHandler(void);
|
||||||
|
void FDCAN2_IT1_IRQHandler(void);
|
||||||
void SPI1_IRQHandler(void);
|
void SPI1_IRQHandler(void);
|
||||||
void SPI2_IRQHandler(void);
|
void SPI2_IRQHandler(void);
|
||||||
void USART1_IRQHandler(void);
|
void USART1_IRQHandler(void);
|
||||||
@@ -80,6 +82,7 @@ void OTG_HS_IRQHandler(void);
|
|||||||
void UART7_IRQHandler(void);
|
void UART7_IRQHandler(void);
|
||||||
void USART10_IRQHandler(void);
|
void USART10_IRQHandler(void);
|
||||||
void FDCAN3_IT0_IRQHandler(void);
|
void FDCAN3_IT0_IRQHandler(void);
|
||||||
|
void FDCAN3_IT1_IRQHandler(void);
|
||||||
void TIM23_IRQHandler(void);
|
void TIM23_IRQHandler(void);
|
||||||
/* USER CODE BEGIN EFP */
|
/* USER CODE BEGIN EFP */
|
||||||
|
|
||||||
|
|||||||
@@ -216,6 +216,8 @@ void HAL_FDCAN_MspInit(FDCAN_HandleTypeDef* fdcanHandle)
|
|||||||
/* FDCAN1 interrupt Init */
|
/* FDCAN1 interrupt Init */
|
||||||
HAL_NVIC_SetPriority(FDCAN1_IT0_IRQn, 5, 0);
|
HAL_NVIC_SetPriority(FDCAN1_IT0_IRQn, 5, 0);
|
||||||
HAL_NVIC_EnableIRQ(FDCAN1_IT0_IRQn);
|
HAL_NVIC_EnableIRQ(FDCAN1_IT0_IRQn);
|
||||||
|
HAL_NVIC_SetPriority(FDCAN1_IT1_IRQn, 5, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(FDCAN1_IT1_IRQn);
|
||||||
/* USER CODE BEGIN FDCAN1_MspInit 1 */
|
/* USER CODE BEGIN FDCAN1_MspInit 1 */
|
||||||
|
|
||||||
/* USER CODE END FDCAN1_MspInit 1 */
|
/* USER CODE END FDCAN1_MspInit 1 */
|
||||||
@@ -256,6 +258,8 @@ void HAL_FDCAN_MspInit(FDCAN_HandleTypeDef* fdcanHandle)
|
|||||||
/* FDCAN2 interrupt Init */
|
/* FDCAN2 interrupt Init */
|
||||||
HAL_NVIC_SetPriority(FDCAN2_IT0_IRQn, 5, 0);
|
HAL_NVIC_SetPriority(FDCAN2_IT0_IRQn, 5, 0);
|
||||||
HAL_NVIC_EnableIRQ(FDCAN2_IT0_IRQn);
|
HAL_NVIC_EnableIRQ(FDCAN2_IT0_IRQn);
|
||||||
|
HAL_NVIC_SetPriority(FDCAN2_IT1_IRQn, 5, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(FDCAN2_IT1_IRQn);
|
||||||
/* USER CODE BEGIN FDCAN2_MspInit 1 */
|
/* USER CODE BEGIN FDCAN2_MspInit 1 */
|
||||||
|
|
||||||
/* USER CODE END FDCAN2_MspInit 1 */
|
/* USER CODE END FDCAN2_MspInit 1 */
|
||||||
@@ -296,6 +300,8 @@ void HAL_FDCAN_MspInit(FDCAN_HandleTypeDef* fdcanHandle)
|
|||||||
/* FDCAN3 interrupt Init */
|
/* FDCAN3 interrupt Init */
|
||||||
HAL_NVIC_SetPriority(FDCAN3_IT0_IRQn, 5, 0);
|
HAL_NVIC_SetPriority(FDCAN3_IT0_IRQn, 5, 0);
|
||||||
HAL_NVIC_EnableIRQ(FDCAN3_IT0_IRQn);
|
HAL_NVIC_EnableIRQ(FDCAN3_IT0_IRQn);
|
||||||
|
HAL_NVIC_SetPriority(FDCAN3_IT1_IRQn, 5, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(FDCAN3_IT1_IRQn);
|
||||||
/* USER CODE BEGIN FDCAN3_MspInit 1 */
|
/* USER CODE BEGIN FDCAN3_MspInit 1 */
|
||||||
|
|
||||||
/* USER CODE END FDCAN3_MspInit 1 */
|
/* USER CODE END FDCAN3_MspInit 1 */
|
||||||
@@ -324,6 +330,7 @@ void HAL_FDCAN_MspDeInit(FDCAN_HandleTypeDef* fdcanHandle)
|
|||||||
|
|
||||||
/* FDCAN1 interrupt Deinit */
|
/* FDCAN1 interrupt Deinit */
|
||||||
HAL_NVIC_DisableIRQ(FDCAN1_IT0_IRQn);
|
HAL_NVIC_DisableIRQ(FDCAN1_IT0_IRQn);
|
||||||
|
HAL_NVIC_DisableIRQ(FDCAN1_IT1_IRQn);
|
||||||
/* USER CODE BEGIN FDCAN1_MspDeInit 1 */
|
/* USER CODE BEGIN FDCAN1_MspDeInit 1 */
|
||||||
|
|
||||||
/* USER CODE END FDCAN1_MspDeInit 1 */
|
/* USER CODE END FDCAN1_MspDeInit 1 */
|
||||||
@@ -347,6 +354,7 @@ void HAL_FDCAN_MspDeInit(FDCAN_HandleTypeDef* fdcanHandle)
|
|||||||
|
|
||||||
/* FDCAN2 interrupt Deinit */
|
/* FDCAN2 interrupt Deinit */
|
||||||
HAL_NVIC_DisableIRQ(FDCAN2_IT0_IRQn);
|
HAL_NVIC_DisableIRQ(FDCAN2_IT0_IRQn);
|
||||||
|
HAL_NVIC_DisableIRQ(FDCAN2_IT1_IRQn);
|
||||||
/* USER CODE BEGIN FDCAN2_MspDeInit 1 */
|
/* USER CODE BEGIN FDCAN2_MspDeInit 1 */
|
||||||
|
|
||||||
/* USER CODE END FDCAN2_MspDeInit 1 */
|
/* USER CODE END FDCAN2_MspDeInit 1 */
|
||||||
@@ -370,6 +378,7 @@ void HAL_FDCAN_MspDeInit(FDCAN_HandleTypeDef* fdcanHandle)
|
|||||||
|
|
||||||
/* FDCAN3 interrupt Deinit */
|
/* FDCAN3 interrupt Deinit */
|
||||||
HAL_NVIC_DisableIRQ(FDCAN3_IT0_IRQn);
|
HAL_NVIC_DisableIRQ(FDCAN3_IT0_IRQn);
|
||||||
|
HAL_NVIC_DisableIRQ(FDCAN3_IT1_IRQn);
|
||||||
/* USER CODE BEGIN FDCAN3_MspDeInit 1 */
|
/* USER CODE BEGIN FDCAN3_MspDeInit 1 */
|
||||||
|
|
||||||
/* USER CODE END FDCAN3_MspDeInit 1 */
|
/* USER CODE END FDCAN3_MspDeInit 1 */
|
||||||
|
|||||||
@@ -151,30 +151,20 @@ void StartDaemonTask(void *argument); // <--- 新的,带参数的标准 RTOS
|
|||||||
/* USER CODE END FunctionPrototypes */
|
/* USER CODE END FunctionPrototypes */
|
||||||
|
|
||||||
void StartDefaultTask(void *argument);
|
void StartDefaultTask(void *argument);
|
||||||
|
|
||||||
void ShootTask(void *argument);
|
void ShootTask(void *argument);
|
||||||
|
|
||||||
void GimbalTask(void *argument);
|
void GimbalTask(void *argument);
|
||||||
|
|
||||||
void ChassisTask(void *argument);
|
void ChassisTask(void *argument);
|
||||||
|
|
||||||
void StartInitTask(void *argument);
|
void StartInitTask(void *argument);
|
||||||
|
|
||||||
void VisionTask(void *argument);
|
void VisionTask(void *argument);
|
||||||
|
|
||||||
void CmdTask(void *argument);
|
void CmdTask(void *argument);
|
||||||
|
|
||||||
void RefereeTask(void *argument);
|
void RefereeTask(void *argument);
|
||||||
|
|
||||||
extern void ws2812Task(void *argument);
|
extern void ws2812Task(void *argument);
|
||||||
|
|
||||||
extern void MX_USB_DEVICE_Init(void);
|
extern void MX_USB_DEVICE_Init(void);
|
||||||
|
|
||||||
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
|
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
|
||||||
|
|
||||||
/* Hook prototypes */
|
/* Hook prototypes */
|
||||||
void vApplicationStackOverflowHook(xTaskHandle xTask, signed char *pcTaskName);
|
void vApplicationStackOverflowHook(xTaskHandle xTask, signed char *pcTaskName);
|
||||||
|
|
||||||
void vApplicationMallocFailedHook(void);
|
void vApplicationMallocFailedHook(void);
|
||||||
|
|
||||||
/* USER CODE BEGIN 4 */
|
/* USER CODE BEGIN 4 */
|
||||||
@@ -209,8 +199,7 @@ void vApplicationMallocFailedHook(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void MX_FREERTOS_Init(void)
|
void MX_FREERTOS_Init(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN Init */
|
/* USER CODE BEGIN Init */
|
||||||
|
|
||||||
/* USER CODE END Init */
|
/* USER CODE END Init */
|
||||||
@@ -273,6 +262,7 @@ void MX_FREERTOS_Init(void)
|
|||||||
/* USER CODE BEGIN RTOS_EVENTS */
|
/* USER CODE BEGIN RTOS_EVENTS */
|
||||||
/* add events, ... */
|
/* add events, ... */
|
||||||
/* USER CODE END RTOS_EVENTS */
|
/* USER CODE END RTOS_EVENTS */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN Header_StartDefaultTask */
|
/* USER CODE BEGIN Header_StartDefaultTask */
|
||||||
|
|||||||
@@ -327,6 +327,34 @@ void FDCAN2_IT0_IRQHandler(void)
|
|||||||
/* USER CODE END FDCAN2_IT0_IRQn 1 */
|
/* USER CODE END FDCAN2_IT0_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles FDCAN1 interrupt 1.
|
||||||
|
*/
|
||||||
|
void FDCAN1_IT1_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN FDCAN1_IT1_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END FDCAN1_IT1_IRQn 0 */
|
||||||
|
HAL_FDCAN_IRQHandler(&hfdcan1);
|
||||||
|
/* USER CODE BEGIN FDCAN1_IT1_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END FDCAN1_IT1_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles FDCAN2 interrupt 1.
|
||||||
|
*/
|
||||||
|
void FDCAN2_IT1_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN FDCAN2_IT1_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END FDCAN2_IT1_IRQn 0 */
|
||||||
|
HAL_FDCAN_IRQHandler(&hfdcan2);
|
||||||
|
/* USER CODE BEGIN FDCAN2_IT1_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END FDCAN2_IT1_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles SPI1 global interrupt.
|
* @brief This function handles SPI1 global interrupt.
|
||||||
*/
|
*/
|
||||||
@@ -579,6 +607,20 @@ void FDCAN3_IT0_IRQHandler(void)
|
|||||||
/* USER CODE END FDCAN3_IT0_IRQn 1 */
|
/* USER CODE END FDCAN3_IT0_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles FDCAN3 interrupt 1.
|
||||||
|
*/
|
||||||
|
void FDCAN3_IT1_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN FDCAN3_IT1_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END FDCAN3_IT1_IRQn 0 */
|
||||||
|
HAL_FDCAN_IRQHandler(&hfdcan3);
|
||||||
|
/* USER CODE BEGIN FDCAN3_IT1_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END FDCAN3_IT1_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles TIM23 global interrupt.
|
* @brief This function handles TIM23 global interrupt.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -570,8 +570,11 @@ NVIC.DMA2_Stream6_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
|||||||
NVIC.DMA2_Stream7_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
NVIC.DMA2_Stream7_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.FDCAN1_IT0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
NVIC.FDCAN1_IT0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
|
NVIC.FDCAN1_IT1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.FDCAN2_IT0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
NVIC.FDCAN2_IT0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
|
NVIC.FDCAN2_IT1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.FDCAN3_IT0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
NVIC.FDCAN3_IT0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
|
NVIC.FDCAN3_IT1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.ForceEnableDMAVector=true
|
NVIC.ForceEnableDMAVector=true
|
||||||
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ static void CANAddFilter(FDCANInstance *_instance)
|
|||||||
fdcan_filter_conf.IsCalibrationMsg = 0;
|
fdcan_filter_conf.IsCalibrationMsg = 0;
|
||||||
//fdcan_filter_conf.RxBufferIndex=0;
|
//fdcan_filter_conf.RxBufferIndex=0;
|
||||||
|
|
||||||
// ================== 【核心修复区】 ==================
|
// ================== 【核心修复区】 ==================@todo:有问题 我要验牌
|
||||||
// 1. 强制让 FDCAN 进入 INIT 模式,否则无法写入 Message RAM
|
// 1. 强制让 FDCAN 进入 INIT 模式,否则无法写入 Message RAM
|
||||||
HAL_FDCAN_Stop(_instance->can_handle);
|
HAL_FDCAN_Stop(_instance->can_handle);
|
||||||
|
|
||||||
@@ -87,9 +87,14 @@ static void CANAddFilter(FDCANInstance *_instance)
|
|||||||
|
|
||||||
// 3. 重新启动 FDCAN
|
// 3. 重新启动 FDCAN
|
||||||
HAL_FDCAN_Start(_instance->can_handle);
|
HAL_FDCAN_Start(_instance->can_handle);
|
||||||
// ====================================================
|
|
||||||
|
|
||||||
HAL_FDCAN_ConfigFilter(_instance->can_handle, &fdcan_filter_conf);
|
// 4. 【救命稻草】HAL_FDCAN_Stop 关闭了所有中断,必须在这里重新激活!
|
||||||
|
uint32_t FDCAN_RXActiveITs = FDCAN_IT_RX_FIFO0_NEW_MESSAGE | FDCAN_IT_RX_FIFO0_FULL |
|
||||||
|
FDCAN_IT_RX_FIFO0_WATERMARK | FDCAN_IT_RX_FIFO0_MESSAGE_LOST |
|
||||||
|
FDCAN_IT_RX_FIFO1_NEW_MESSAGE | FDCAN_IT_RX_FIFO1_FULL |
|
||||||
|
FDCAN_IT_RX_FIFO1_WATERMARK | FDCAN_IT_RX_FIFO1_MESSAGE_LOST;
|
||||||
|
HAL_FDCAN_ActivateNotification(_instance->can_handle, FDCAN_RXActiveITs, 0);
|
||||||
|
// ====================================================
|
||||||
|
|
||||||
#else
|
#else
|
||||||
CAN_FilterTypeDef can_filter_conf;
|
CAN_FilterTypeDef can_filter_conf;
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ static XidiPowerMeter_Init_Config_s xidi_pm_config = {
|
|||||||
.can_config = {
|
.can_config = {
|
||||||
.can_handle = &hfdcan1, // 原来直接传的句柄,现在放进结构体里
|
.can_handle = &hfdcan1, // 原来直接传的句柄,现在放进结构体里
|
||||||
.rx_id = 0x213, // 接收 ID
|
.rx_id = 0x213, // 接收 ID
|
||||||
.tx_id = 0x001, // 发送 ID (不发送填0)
|
.tx_id = 0x000, // 发送 ID (不发送填0)
|
||||||
},
|
},
|
||||||
.daemon_config = {
|
.daemon_config = {
|
||||||
.reload_count = 5, // 守护进程超时周期 (例如:5次没收到算离线)
|
.reload_count = 5, // 守护进程超时周期 (例如:5次没收到算离线)
|
||||||
|
|||||||
Reference in New Issue
Block a user