Since the command is 2 bytes long and I need to receive 3 bytes following.
static const nrf_drv_spi_t spi1 = NRF_DRV_SPI_INSTANCE(1); static uint8_t cmd[5]; static uint8_t mfg_id[5]; void w25n01gv_init(void) { nrf_drv_spi_config_t spi_config = NRF_DRV_SPI_DEFAULT_CONFIG; spi_config.ss_pin = SD_SPI_SS_PIN; spi_config.sck_pin = SPI_SCK_PIN; spi_config.mosi_pin = SPI_MOSI_PIN; spi_config.miso_pin = SPI_MISO_PIN; spi_config.frequency = NRF_DRV_SPI_FREQ_1M; //spi_config.bit_order = NRF_DRV_SPI_BIT_ORDER_MSB_FIRST; nrf_drv_spi_init(&spi1, &spi_config, spi_event_handler, NULL); NRF_LOG_INFO("SPI Initialized"); } void w25n01gv_read_mfg_id(void) { cmd[0] = 0x9F; cmd[1]=0x00; //dummy bit spi_xfer_done = false; nrf_drv_spi_transfer(&spi1, cmd, 5, mfg_id, 5); while(spi_xfer_done){ } NRF_LOG_INFO("Manufacturer ID: 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X\n", mfg_id[0], mfg_id[1], mfg_id[2], mfg_id[3], mfg_id[4]); NRF_LOG_FLUSH(); } int main(void) { log_init(); w25n01gv_init(); w25n01gv_read_mfg_id(); while(1) {} }