This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

usbd transfer

hello, i hanve a problem when i use usb transfer data to pc with ep1, sdk 17.0,nrf52840dongle

I have many data(more than 100KB) transfer to pc,when I send the data for once,is OK,i want to transfer the data 1K at once in loop, but the pc received data is wrong

the transfer function is blow:

nrfx_err_t send_img_ep1(void const * p_data, size_t size)
{
    nrf_drv_usbd_transfer_t transfer =
    {
        .p_data = {.tx = p_data},
        .size = size,
        .flags = 1
    };
    if ((size > NRF_DRV_USBD_EPSIZE) && (size % NRF_DRV_USBD_EPSIZE == 0))
    {
        transfer.flags |= NRFX_USBD_TRANSFER_ZLP_FLAG;
    }
    // app_usbd_ep_transfer(NRF_DRV_USBD_EPIN1, &transfer);
    nrfx_err_t code = nrf_drv_usbd_ep_transfer(NRF_DRV_USBD_EPIN1, &transfer);
    usbd_ep1_complete = false;
    nrf_gpio_pin_toggle(ASIC_RESET_PIN);
    return code;
}

Related