add more error led states and ignore CAN send FIFO full error
This commit is contained in:
parent
28fc2a966b
commit
2afdfa8293
@ -47,6 +47,7 @@ extern "C" {
|
|||||||
/* Exported macro ------------------------------------------------------------*/
|
/* Exported macro ------------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN EM */
|
/* USER CODE BEGIN EM */
|
||||||
|
|
||||||
|
void Error_Handler_Led(uint8_t err);
|
||||||
/* USER CODE END EM */
|
/* USER CODE END EM */
|
||||||
|
|
||||||
/* Exported functions prototypes ---------------------------------------------*/
|
/* Exported functions prototypes ---------------------------------------------*/
|
||||||
|
@ -132,9 +132,11 @@ void loop_1kHz() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (HAL_FDCAN_AddMessageToTxFifoQ(hMainCAN, &txHeader, (uint8_t*) &txData) != HAL_OK)
|
if (HAL_FDCAN_AddMessageToTxFifoQ(hMainCAN, &txHeader, (uint8_t*) &txData) != HAL_OK) {
|
||||||
Error_Handler();
|
if(HAL_FDCAN_GetError(hMainCAN) != HAL_FDCAN_ERROR_FIFO_FULL) {
|
||||||
|
Error_Handler_Led(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mscounter >= 500) {
|
if (mscounter >= 500) {
|
||||||
@ -195,10 +197,10 @@ int main(void)
|
|||||||
hPeriCAN = &hfdcan2;
|
hPeriCAN = &hfdcan2;
|
||||||
|
|
||||||
if (HAL_ADCEx_Calibration_Start(&hadc1, ADC_CALIB_OFFSET, ADC_SINGLE_ENDED) != HAL_OK)
|
if (HAL_ADCEx_Calibration_Start(&hadc1, ADC_CALIB_OFFSET, ADC_SINGLE_ENDED) != HAL_OK)
|
||||||
Error_Handler();
|
Error_Handler_Led(2);
|
||||||
|
|
||||||
if (HAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_values, NUM_ADC_PINS) != HAL_OK)
|
if (HAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_values, NUM_ADC_PINS) != HAL_OK)
|
||||||
Error_Handler();
|
Error_Handler_Led(2);
|
||||||
|
|
||||||
HAL_TIM_Base_Start_IT(&htim6);
|
HAL_TIM_Base_Start_IT(&htim6);
|
||||||
|
|
||||||
@ -215,11 +217,11 @@ int main(void)
|
|||||||
txHeader.DataLength = 8;
|
txHeader.DataLength = 8;
|
||||||
|
|
||||||
if (HAL_FDCAN_ActivateNotification(hMainCAN, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0) != HAL_OK)
|
if (HAL_FDCAN_ActivateNotification(hMainCAN, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0) != HAL_OK)
|
||||||
Error_Handler();
|
Error_Handler_Led(3);
|
||||||
|
|
||||||
if (HAL_FDCAN_ConfigGlobalFilter(hMainCAN, FDCAN_REJECT, FDCAN_REJECT,
|
if (HAL_FDCAN_ConfigGlobalFilter(hMainCAN, FDCAN_REJECT, FDCAN_REJECT,
|
||||||
FDCAN_REJECT_REMOTE, FDCAN_REJECT_REMOTE) != HAL_OK)
|
FDCAN_REJECT_REMOTE, FDCAN_REJECT_REMOTE) != HAL_OK)
|
||||||
Error_Handler();
|
Error_Handler_Led(3);
|
||||||
|
|
||||||
FDCAN_FilterTypeDef filter;
|
FDCAN_FilterTypeDef filter;
|
||||||
filter.IdType = FDCAN_STANDARD_ID;
|
filter.IdType = FDCAN_STANDARD_ID;
|
||||||
@ -230,10 +232,10 @@ int main(void)
|
|||||||
filter.FilterID2 = CAN_PWM_FILTER_MASK;
|
filter.FilterID2 = CAN_PWM_FILTER_MASK;
|
||||||
|
|
||||||
if (HAL_FDCAN_ConfigFilter(hMainCAN, &filter) != HAL_OK)
|
if (HAL_FDCAN_ConfigFilter(hMainCAN, &filter) != HAL_OK)
|
||||||
Error_Handler();
|
Error_Handler_Led(5);
|
||||||
|
|
||||||
if (HAL_FDCAN_Start(hMainCAN) != HAL_OK)
|
if (HAL_FDCAN_Start(hMainCAN) != HAL_OK)
|
||||||
Error_Handler();
|
Error_Handler_Led(5);
|
||||||
|
|
||||||
// Init all channels as stopped
|
// Init all channels as stopped
|
||||||
memset(pwm_ch_active, 0, 8);
|
memset(pwm_ch_active, 0, 8);
|
||||||
@ -299,7 +301,7 @@ void SystemClock_Config(void)
|
|||||||
RCC_OscInitStruct.PLL.PLLFRACN = 0;
|
RCC_OscInitStruct.PLL.PLLFRACN = 0;
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
|
||||||
{
|
{
|
||||||
Error_Handler();
|
Error_Handler_Led(4);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Initializes the CPU, AHB and APB buses clocks
|
/** Initializes the CPU, AHB and APB buses clocks
|
||||||
@ -317,7 +319,7 @@ void SystemClock_Config(void)
|
|||||||
|
|
||||||
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
|
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
|
||||||
{
|
{
|
||||||
Error_Handler();
|
Error_Handler_Led(4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -458,6 +460,49 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
|||||||
HAL_ResumeTick();
|
HAL_ResumeTick();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Error_Handler_Led(uint8_t err) {
|
||||||
|
HAL_GPIO_WritePin(STATUS_R_GPIO_Port, STATUS_R_Pin, GPIO_PIN_RESET);
|
||||||
|
HAL_GPIO_WritePin(STATUS_G_GPIO_Port, STATUS_G_Pin, GPIO_PIN_RESET);
|
||||||
|
HAL_GPIO_WritePin(STATUS_B_GPIO_Port, STATUS_B_Pin, GPIO_PIN_RESET);
|
||||||
|
switch (err)
|
||||||
|
{
|
||||||
|
case 0: // red: general error
|
||||||
|
HAL_GPIO_WritePin(STATUS_R_GPIO_Port, STATUS_R_Pin, GPIO_PIN_SET);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1: // red blue: in 1 kHz loop
|
||||||
|
HAL_GPIO_WritePin(STATUS_R_GPIO_Port, STATUS_R_Pin, GPIO_PIN_SET);
|
||||||
|
HAL_GPIO_WritePin(STATUS_B_GPIO_Port, STATUS_B_Pin, GPIO_PIN_SET);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2: // blue: ADC calibration or DMA start
|
||||||
|
HAL_GPIO_WritePin(STATUS_B_GPIO_Port, STATUS_B_Pin, GPIO_PIN_SET);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3: // green blue: CAN notify and config gloabl filter
|
||||||
|
HAL_GPIO_WritePin(STATUS_B_GPIO_Port, STATUS_B_Pin, GPIO_PIN_SET);
|
||||||
|
HAL_GPIO_WritePin(STATUS_G_GPIO_Port, STATUS_G_Pin, GPIO_PIN_SET);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4: //red green: clock
|
||||||
|
HAL_GPIO_WritePin(STATUS_R_GPIO_Port, STATUS_R_Pin, GPIO_PIN_SET);
|
||||||
|
HAL_GPIO_WritePin(STATUS_G_GPIO_Port, STATUS_G_Pin, GPIO_PIN_SET);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 5: // red green blue: CAN config filter and start
|
||||||
|
HAL_GPIO_WritePin(STATUS_R_GPIO_Port, STATUS_R_Pin, GPIO_PIN_SET);
|
||||||
|
HAL_GPIO_WritePin(STATUS_B_GPIO_Port, STATUS_B_Pin, GPIO_PIN_SET);
|
||||||
|
HAL_GPIO_WritePin(STATUS_G_GPIO_Port, STATUS_G_Pin, GPIO_PIN_SET);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
__disable_irq();
|
||||||
|
while (1);
|
||||||
|
}
|
||||||
|
|
||||||
/* USER CODE END 4 */
|
/* USER CODE END 4 */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user