when i try to configure spi1 i am getting error, so how can i configure different spi ?
when i try to configure spi1 i am getting error, so how can i configure different spi ?
To use blocking mode you do not provide a event handler when you initialize the driver using nrf_drv_spi_init(). So in your code, you would change the call to nrf_drv_spi_init() like this:
APP_ERROR_CHECK(nrf_drv_spi_init(&spi, &spi_config, NULL, NULL));
Then call nrf_drv_spi_transfer() like before (but fix it so that you check return values!) and the function will not return until the transaction has completed.
what are the functions i am suppose to enable in sdk_config file ?
and i need sdk_config file
Please refer to example I linked to before to see an example of sdk_config.h when using SPI. The relevant section (copy-pasted from the example) is this:
// <e> SPI_ENABLED - nrf_drv_spi - SPI/SPIM peripheral driver - legacy layer //========================================================== #ifndef SPI_ENABLED #define SPI_ENABLED 1 #endif // <o> SPI_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority // <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice // <0=> 0 (highest) // <1=> 1 // <2=> 2 // <3=> 3 // <4=> 4 // <5=> 5 // <6=> 6 // <7=> 7 #ifndef SPI_DEFAULT_CONFIG_IRQ_PRIORITY #define SPI_DEFAULT_CONFIG_IRQ_PRIORITY 6 #endif // <o> NRF_SPI_DRV_MISO_PULLUP_CFG - MISO PIN pull-up configuration. // <0=> NRF_GPIO_PIN_NOPULL // <1=> NRF_GPIO_PIN_PULLDOWN // <3=> NRF_GPIO_PIN_PULLUP #ifndef NRF_SPI_DRV_MISO_PULLUP_CFG #define NRF_SPI_DRV_MISO_PULLUP_CFG 1 #endif // <e> SPI0_ENABLED - Enable SPI0 instance //========================================================== #ifndef SPI0_ENABLED #define SPI0_ENABLED 1 #endif // <q> SPI0_USE_EASY_DMA - Use EasyDMA #ifndef SPI0_USE_EASY_DMA #define SPI0_USE_EASY_DMA 1 #endif // </e> // <e> SPI1_ENABLED - Enable SPI1 instance //========================================================== #ifndef SPI1_ENABLED #define SPI1_ENABLED 0 #endif // <q> SPI1_USE_EASY_DMA - Use EasyDMA #ifndef SPI1_USE_EASY_DMA #define SPI1_USE_EASY_DMA 1 #endif // </e> // <e> SPI2_ENABLED - Enable SPI2 instance //========================================================== #ifndef SPI2_ENABLED #define SPI2_ENABLED 0 #endif // <q> SPI2_USE_EASY_DMA - Use EasyDMA #ifndef SPI2_USE_EASY_DMA #define SPI2_USE_EASY_DMA 1 #endif // </e> // </e>
i am getting error like this
undefined reference to `nrfx_prs_acquire'
Ah, yes. I did not think about that. Assuming you have added the requiered include folder etc you are lacking the PRS configuraiton in sdk_config.h. Depending on which sdk_config.h you used as a starting point there may be more like this. Please search for NRFX_PRS_ENABLED and NRFX_PRS_BOX_4_ENABLED in sdk_config.h. You may need to do this with other components as well.