I have CANBUS working under HAL drivers in uV5 but how can I add these three components on my MBED code?
How to translate this:
-2- Configure the CAN Filter #
##
sFilterConfig.FilterNumber = 0;
sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
sFilterConfig.FilterIdHigh = 0x400 << 5;
11-bit ID in top bits sFilterConfig.FilterIdLow = 0x0000;
sFilterConfig.FilterMaskIdHigh = 0x600 << 5;
sFilterConfig.FilterMaskIdLow = 0x0000;
sFilterConfig.FilterFIFOAssignment = 0;
sFilterConfig.FilterActivation = ENABLE;
sFilterConfig.BankNumber = 0;
if (HAL_CAN_ConfigFilter(&hcan, &sFilterConfig) != HAL_OK) {
Filter configuration Error Error_Handler();
sprintf(console::string,"Can Filter configuration Error\n\r"); console::io.puts(console::string);
}
and translate this:
HAL_CAN_ENABLE_IT (&hcan, CAN_IT_FMP1);
HAL_CAN_ENABLE_IT (&hcan, CAN_IT_FMP0);
and this:
void CEC_CAN_IRQHandler(void) {
/* USER CODE BEGIN CEC_CAN_IRQn 0 */
CAN_IRQFlag = true;
checkCanRxFifos(); receive CAN messages before HAL sees them.
/* USER CODE END CEC_CAN_IRQn 0 */
HAL_CAN_IRQHandler(&hcan);
/* USER CODE BEGIN CEC_CAN_IRQn 1 */
/* USER CODE END CEC_CAN_IRQn 1 */
}
I have CANBUS working under HAL drivers in uV5 but how can I add these three components on my MBED code?
How to translate this:
-2- Configure the CAN Filter
#
## sFilterConfig.FilterNumber = 0; sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK; sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT; sFilterConfig.FilterIdHigh = 0x400 << 5; 11-bit ID in top bits sFilterConfig.FilterIdLow = 0x0000; sFilterConfig.FilterMaskIdHigh = 0x600 << 5; sFilterConfig.FilterMaskIdLow = 0x0000; sFilterConfig.FilterFIFOAssignment = 0; sFilterConfig.FilterActivation = ENABLE; sFilterConfig.BankNumber = 0;
if (HAL_CAN_ConfigFilter(&hcan, &sFilterConfig) != HAL_OK) { Filter configuration Error Error_Handler();
sprintf(console::string,"Can Filter configuration Error\n\r"); console::io.puts(console::string);
}
and translate this:
HAL_CAN_ENABLE_IT (&hcan, CAN_IT_FMP1);
HAL_CAN_ENABLE_IT (&hcan, CAN_IT_FMP0);
and this:
void CEC_CAN_IRQHandler(void) {
/* USER CODE BEGIN CEC_CAN_IRQn 0 */
CAN_IRQFlag = true;
checkCanRxFifos(); receive CAN messages before HAL sees them.
/* USER CODE END CEC_CAN_IRQn 0 */
HAL_CAN_IRQHandler(&hcan);
/* USER CODE BEGIN CEC_CAN_IRQn 1 */
/* USER CODE END CEC_CAN_IRQn 1 */
}