Ошибка [Pe513]: значение типа «void (*) (void *, CO_CANrxMsg_t *)» не может быть назначено объекту типа «void (*) (void *, CanRxMsgTypeDef *)» - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь скомпилировать проект CanOpenNode.Есть ошибка, которую я не могу устранить, Может кто-нибудь помочь.Проект находится в "C".

Ошибка:

Error[Pe513]: a value of type "void (*)(void *, CO_CANrxMsg_t *)" cannot be assigned to an entity of type "void (*)(void *, CanRxMsgTypeDef *)" 

Строка ошибки:

buffer->pFunct = pFunct;

Код:

CO_ReturnError_t CO_CANrxBufferInit(
        CO_CANmodule_t          *CANmodule,
        uint16_t                index,
        uint16_t                ident,
        uint16_t                mask,
        bool_t                  rtr,
        void                    *object,
        void                    (*pFunct)(void *object, CO_CANrxMsg_t *message))
{
    CO_ReturnError_t ret = CO_ERROR_NO;
        //CAN_FilterConfTypeDef     sFilterConfig;
        uint16_t RXF, RXM;

    if((CANmodule!=NULL) && (object!=NULL) && (pFunct!=NULL) && (index < CANmodule->rxSize)){
        /* buffer, which will be configured */
        CO_CANrx_t *buffer = &CANmodule->rxArray[index];

        /* Configure object variables */
        buffer->object = object;
        buffer->pFunct = pFunct;

        /* CAN identifier and CAN mask, bit aligned with CAN module. Different on different microcontrollers. */
        //CAN identifier and CAN mask, bit aligned with CAN module registers
                RXF = (ident & 0x07FF) << 2;
                if (rtr) RXF |= 0x02;
                RXM = (mask & 0x07FF) << 2;
                RXM |= 0x02;
        //configure filter and mask
                if (RXF != buffer->ident || RXM != buffer->mask)
                {
                        buffer->ident = RXF;
                        buffer->mask = RXM;
                }
                ret = CO_ERROR_NO;
    }
    else{
        ret = CO_ERROR_ILLEGAL_ARGUMENT;
    }

    return ret;
}
...