USBD_Vendor_IntrWrAsync

USBD_Vendor_IntrWrAsync

Description

Send data to host through Interrupt IN endpoint. This function is non-blocking. It returns immediately after transfer preparation. Upon transfer completion, a callback provided by the application will be called to finalize the transfer.

Files

usbd_vendor.h / usbd_vendor.c

Prototype

void USBD_Vendor_IntrWrAsync (CPU_INT08U class_nbr, void *p_buf, CPU_INT32U buf_len, USBD_VENDOR_ASYNC_FNCT async_fnct, void *p_async_arg, CPU_BOOLEAN end, USBD_ERR *p_err);

 

Arguments

class_nbr

Class instance number.

p_buf

Pointer to transmit buffer.

buf_len

Transmit buffer length in octets.

async_fnct

Transmit callback.

p_async_arg

Additional argument provided by application for transmit callback.

end

End-of-transfer flag.

p_err

Pointer to variable that will receive the return error code from this function.

USBD_ERR_NONE

USBD_ERR_NULL_PTR

USBD_ERR_INVALID_ARG

USBD_ERR_INVALID_CLASS_STATE

USBD_ERR_DEV_INVALID_NBR

USBD_ERR_EP_INVALID_NBR

USBD_ERR_DEV_INVALID_STATE

USBD_ERR_EP_INVALID_TYPE

USBD_ERR_EP_INVALID_STATE

Returned Value

Number of octets sent, if NO error(s).

0, otherwise.

Callers

Application.

Notes / Warnings

If end-of-transfer flag is set and transfer length is multiple of maximum packet size, a zero-length packet is transferred to indicate the end of transfer to the host.