mirror of https://github.com/ARMmbed/mbed-os.git
NuMaker M480 & M451 support CAN mask
parent
4866c79aec
commit
3198bab7c6
|
@ -285,7 +285,17 @@ int can_mode(can_t *obj, CanMode mode)
|
|||
|
||||
int can_filter(can_t *obj, uint32_t id, uint32_t mask, CANFormat format, int32_t handle)
|
||||
{
|
||||
return CAN_SetRxMsg((CAN_T *)NU_MODBASE(obj->can), handle , (uint32_t)format, id);
|
||||
uint32_t numask = mask;
|
||||
if( numask == 0x0000 )
|
||||
{
|
||||
return CAN_SetRxMsg((CAN_T *)NU_MODBASE(obj->can), handle, (uint32_t)format, id);
|
||||
}
|
||||
if( format == CANStandard )
|
||||
{
|
||||
numask = (mask << 18);
|
||||
}
|
||||
numask = (numask | CAN_IF_MASK2_MDIR_Msk | CAN_IF_MASK2_MXTD_Msk);
|
||||
return CAN_SetRxMsgAndMsk((CAN_T *)NU_MODBASE(obj->can), handle, (uint32_t)format, id, numask);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -329,10 +329,19 @@ int can_mode(can_t *obj, CanMode mode)
|
|||
|
||||
int can_filter(can_t *obj, uint32_t id, uint32_t mask, CANFormat format, int32_t handle)
|
||||
{
|
||||
return CAN_SetRxMsg((CAN_T *)NU_MODBASE(obj->can), handle, (uint32_t)format, id);
|
||||
uint32_t numask = mask;
|
||||
if( numask == 0x0000 )
|
||||
{
|
||||
return CAN_SetRxMsg((CAN_T *)NU_MODBASE(obj->can), handle, (uint32_t)format, id);
|
||||
}
|
||||
if( format == CANStandard )
|
||||
{
|
||||
numask = (mask << 18);
|
||||
}
|
||||
numask = (numask | CAN_IF_MASK2_MDIR_Msk | CAN_IF_MASK2_MXTD_Msk);
|
||||
return CAN_SetRxMsgAndMsk((CAN_T *)NU_MODBASE(obj->can), handle, (uint32_t)format, id, numask);
|
||||
}
|
||||
|
||||
|
||||
void can_reset(can_t *obj)
|
||||
{
|
||||
const struct nu_modinit_s *modinit = get_modinit(obj->can, can_modinit_tab);
|
||||
|
|
Loading…
Reference in New Issue