diff --git a/Core/Src/can.c b/Core/Src/can.c index 2b8f409..e73dc79 100644 --- a/Core/Src/can.c +++ b/Core/Src/can.c @@ -151,6 +151,7 @@ int CAN_send(uint16_t data[], int Addr, int Qua) if (HAL_CAN_GetTxMailboxesFreeLevel(&hcan) != 0) { + msgHeaderSend.IDE = 1; msgHeaderSend.ExtId = TX_box_ID | (Addr & 0xFFFF); msgHeaderSend.DLC = Qua*2; @@ -164,14 +165,14 @@ int CAN_send(uint16_t data[], int Addr, int Qua) msgDataSend[7] = (data[Addr+3] ) & 0x00ff; HAL_CAN_AddTxMessage(&hcan, &msgHeaderSend, msgDataSend, &mailBoxNum); - - LED_0_TGL; + return 1; } else { HAL_CAN_Stop(&hcan); HAL_CAN_Start(&hcan); + HAL_CAN_ActivateNotification(&hcan, CAN_IT_TX_MAILBOX_EMPTY|CAN_IT_ERROR); return 0; } } void Setup_CAN_addr(uint8_t mode) @@ -180,5 +181,22 @@ void Setup_CAN_addr(uint8_t mode) RX_box_ID = (0x80+mode)<<20; TX_box_ID = RX_box_ID | (1L<<28); } - +// Успешная отправка - моргание диодом +void HAL_CAN_TxMailbox0CompleteCallback(CAN_HandleTypeDef *hcan) +{ + LED_0_TGL; +} +void HAL_CAN_TxMailbox1CompleteCallback(CAN_HandleTypeDef *hcan) +{ + LED_0_TGL; +} +void HAL_CAN_TxMailbox2CompleteCallback(CAN_HandleTypeDef *hcan) +{ + LED_0_TGL; +} +// Ошибки: выключение диода +void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan) +{ + LED_0_OFF; +} /* USER CODE END 1 */ diff --git a/Core/Src/main.c b/Core/Src/main.c index 2d23486..9c35416 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -539,16 +539,20 @@ void Millisecond() power_lamp = norm_diod = 0; // Базовое состояние - выключено // Уровень освещенности 2: постоянно включено - if(Lightness == 2) power_lamp = norm_diod = 1; + if(Lightness == 2) + power_lamp = norm_diod = 1; // Уровень освещенности 3: медленное мигание (50%) - if(Lightness == 3) power_lamp = norm_diod = blink_over; + if(Lightness == 3) + power_lamp = norm_diod = blink_over; // Уровень освещенности 4: быстрое мигание (12.5%) - if(Lightness == 4) power_lamp = norm_diod = blink_alarm; + if(Lightness == 4) + power_lamp = norm_diod = blink_alarm; // Уровень освещенности 5: инверсное быстрое мигание (87.5%) - if(Lightness == 5) power_lamp = norm_diod = !blink_alarm; + if(Lightness == 5) + power_lamp = norm_diod = !blink_alarm; } //=== РЕЖИМ ОШИБОК ===// else if(Errors.all) @@ -567,20 +571,27 @@ void Millisecond() if(++count_bright == 10) // maximum_bright (100%) { count_bright = 0; - if(power_lamp) Pvt1_ON; // Включение на полную яркость - else Pvt1_OFF; // Выключение + if(power_lamp) + Pvt1_ON; // Включение на полную яркость + else + Pvt1_OFF; // Выключение } //=== УПРАВЛЕНИЕ ЯРКОСТЬЮ ===// if(count_bright == Brightness) - if(!TST) Pvt1_OFF; // Отключение лампочки с регулировкой яркости + if(!TST) + Pvt1_OFF; // Отключение лампочки с регулировкой яркости //=== УПРАВЛЕНИЕ СВЕТОДИОДАМИ ===// - if(work_diod) LED_2_ON; // Включение рабочего светодиода - else LED_2_OFF; // Выключение рабочего светодиода + if(work_diod) + LED_2_ON; // Включение рабочего светодиода + else + LED_2_OFF; // Выключение рабочего светодиода - if(norm_diod) LED_3_ON; // Включение нормального светодиода - else LED_3_OFF; // Выключение нормального светодиода + if(norm_diod) + LED_3_ON; // Включение нормального светодиода + else + LED_3_OFF; // Выключение нормального светодиода }