Np. tu: viewtopic.php?f=27&t=2450
Zastanawiam się czy to działa jakoś wybiórczo, czy jest jakiś "haczyk" z tym związany...
Kod: Zaznacz cały
/**
* @brief Próbuje nadać payload CAN zgodny z OBDII.
* @param pCAN - wskaźnik na strukturę danych CAN aplikacji
* @param id_type - typ nadawanej ramki
* @param id_value - identyfikator nadawanej ramki
* @param bService - numer zestawu poleceń OBDII
* @param bPID - numer polecenia OBDII
* @retval none
*/
void CAN_Send_Payload_OBDII(const CANDataTypeDef* pCAN,
const uint32_t id_type,
const uint32_t id_value,
const uint8_t bService,
const uint8_t bPID)
{
TxHeader.Identifier = id_value;
TxHeader.IdType = id_type;
TxHeader.TxFrameType = FDCAN_DATA_FRAME;
TxHeader.DataLength = FDCAN_DLC_BYTES_8;
TxHeader.ErrorStateIndicator = FDCAN_ESI_PASSIVE;
TxHeader.BitRateSwitch = FDCAN_BRS_OFF;
TxHeader.FDFormat = FDCAN_CLASSIC_CAN;
TxHeader.TxEventFifoControl = FDCAN_NO_TX_EVENTS;
TxHeader.MessageMarker = 0;
pCAN->TX.CAN_ID = id_value;
pCAN->TX.CAN_Msg[OBD_DATA_LEN] = 0x02;
pCAN->TX.CAN_Msg[OBD_SERVICE_ID] = bService;
pCAN->TX.CAN_Msg[OBD_PID_ID] = bPID;
/* Dodaj do kolejki nadawczej */
if (HAL_FDCAN_AddMessageToTxFifoQ(&hfdcan1, &TxHeader, pCAN->TX.CAN_Msg) != HAL_OK) {
System.LastHALError = HERR_CAN_TX_MSG_FIFO_ADD_REFUSED;
Error_Handler();
}
}---------
Chyba już wiem. Nowa wersja forum zdaje się nie ma jeszcze pełnej implementacji tagu "syntax"...
