Добавлена проверка на успешную инициализацию Register Callback для CAN и TIM.
This commit is contained in:
@@ -93,9 +93,11 @@ int main(void)
|
||||
MX_TIM4_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
HAL_CAN_Start(&hcan);
|
||||
HAL_CAN_ActivateNotification(&hcan, CAN_IT_RX_FIFO0_MSG_PENDING | CAN_IT_ERROR | CAN_IT_BUSOFF | CAN_IT_LAST_ERROR_CODE);
|
||||
PROTOCAN_INIT(&hcan, &hrtc, &htim4);
|
||||
PROTOCAN_LOOP();
|
||||
if(PROTOCAN_INIT(&hcan, &hrtc, &htim4) == PROTOCAN_OK)
|
||||
{
|
||||
HAL_CAN_ActivateNotification(&hcan, CAN_IT_RX_FIFO0_MSG_PENDING | CAN_IT_ERROR | CAN_IT_BUSOFF | CAN_IT_LAST_ERROR_CODE);
|
||||
PROTOCAN_LOOP();
|
||||
}
|
||||
/* USER CODE END 2 */
|
||||
|
||||
/* Infinite loop */
|
||||
|
||||
@@ -59,15 +59,15 @@ void PROTOCAN_DEINIT(uint8_t stage)
|
||||
*/
|
||||
PROTOCAN_INIT_StatusTypeDef PROTOCAN_INIT(CAN_HandleTypeDef *tmp_hcan, RTC_HandleTypeDef *tmp_hrtc, TIM_HandleTypeDef *tmp_tim)
|
||||
{
|
||||
//HAL_CAN_Start(_HCAN);
|
||||
//HAL_CAN_ActivateNotification(_HCAN, CAN_IT_RX_FIFO0_MSG_PENDING | CAN_IT_ERROR | CAN_IT_BUSOFF | CAN_IT_LAST_ERROR_CODE);
|
||||
//MX_TIM4_Init();
|
||||
//MX_RTC_Init();
|
||||
unsigned initStage = 0;
|
||||
if(tmp_hcan) {
|
||||
_HCAN = tmp_hcan;
|
||||
#if (USE_HAL_CAN_REGISTER_CALLBACKS == 1)
|
||||
HAL_CAN_RegisterCallback(_HCAN, HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID, ProtoCanRxFifo0MsgPendingCallback);
|
||||
HAL_StatusTypeDef CAN_RC_RESULT = HAL_CAN_RegisterCallback(_HCAN, HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID, ProtoCanRxFifo0MsgPendingCallback);
|
||||
if(CAN_RC_RESULT != HAL_OK) {
|
||||
PROTOCAN_DEINIT(initStage);
|
||||
return PROTOCAN_HRTC_ERROR;
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
PROTOCAN_DEINIT(initStage);
|
||||
@@ -84,7 +84,11 @@ PROTOCAN_INIT_StatusTypeDef PROTOCAN_INIT(CAN_HandleTypeDef *tmp_hcan, RTC_Handl
|
||||
if(tmp_tim) {
|
||||
_HTIM = tmp_tim;
|
||||
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
|
||||
HAL_TIM_RegisterCallback(_HTIM, HAL_TIM_PERIOD_ELAPSED_CB_ID, ProtoCanPulseCallback);
|
||||
HAL_StatusTypeDef TIM_RC_RESULT = HAL_TIM_RegisterCallback(_HTIM, HAL_TIM_PERIOD_ELAPSED_CB_ID, ProtoCanPulseCallback);
|
||||
if(TIM_RC_RESULT != HAL_OK) {
|
||||
PROTOCAN_DEINIT(initStage);
|
||||
return PROTOCAN_HRTC_ERROR;
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
PROTOCAN_DEINIT(initStage);
|
||||
|
||||
Reference in New Issue
Block a user