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

APP_ERROR_CHECK(nrf_drv_spi_transfer(&spi, m_tx_buf, m_length, m_rx_buf, m_length));

Hi All,

I am a beginner,Can you please explain me what is the role of this line?

APP_ERROR_CHECK(nrf_drv_spi_transfer(&spi, m_tx_buf, m_length, m_rx_buf, m_length));

Parents
  • This is how my main(void) looks like:-

    int main(void) { APP_ERROR_CHECK(NRF_LOG_INIT(NULL));

    NRF_LOG_INFO("SPI example\r\n");
    
    nrf_drv_spi_config_t spi_config = NRF_DRV_SPI_DEFAULT_CONFIG;
    spi_config.ss_pin   = ARDUINO_4_PIN;
    spi_config.miso_pin = ARDUINO_12_PIN;
    spi_config.mosi_pin = ARDUINO_11_PIN;
    spi_config.sck_pin  = ARDUINO_13_PIN;
    APP_ERROR_CHECK(nrf_drv_spi_init(&spi, &spi_config, spi_event_handler));
    
    //CHANGES ENDS HERE
    	
    while (1)
    {
      //Reset rx buffer and transfer done flag			 
    		memset(m_rx_buf, 0, m_length);
      spi_xfer_done = false;
    		 		 
     		//SDC Main starts here
    		 
    	  APP_ERROR_CHECK(nrf_drv_spi_transfer(&spi, m_tx_buf, m_length, m_rx_buf, m_length));
    
        while (!spi_xfer_done)
    			{
    		     __WFE();
        }
    	  bsp_board_leds_init();
    
      APP_ERROR_CHECK(NRF_LOG_INIT(NULL));
      NRF_LOG_INFO("\r\nFATFS example.\r\n\r\n");
    
      fatfs_example();
    	
      APP_ERROR_CHECK(nrf_drv_spi_transfer(&spi, m_tx_buf, m_length, m_rx_buf, m_length));
    
      while (!spi_xfer_done)
      {
            __WFE();
        }
    		 
    		memset(m_rx_buf, 0, m_length);
      spi_xfer_done = false;
    
    		nrf_drv_spi_switch_chips(&spi, SPI_SS_PIN_1);
    		 
    	  //static const nrf_drv_spi_t spi = NRF_DRV_SPI_INSTANCE(1); 
    		 
      APP_ERROR_CHECK(nrf_drv_spi_transfer(&spi, m_tx_buf, m_length, m_rx_buf, m_length));
    
      while (!spi_xfer_done)
      {
            __WFE();
      }
    
      ssd1306_power_on();
        ssd1306_init(SSD1306_CONFIG_DC_PIN,
                   SSD1306_CONFIG_RST_PIN,
                   SSD1306_CONFIG_CS_PIN,
                   SSD1306_CONFIG_CLK_PIN,
                   SSD1306_CONFIG_MOSI_PIN);
        ssd1306_begin(SSD1306_SWITCHCAPVCC, SSD1306_I2C_ADDRESS, true);
    	
    	  init_text();
        ssd1306_clear_display();
      ssd1306_set_textsize(2);
      ssd1306_set_textcolor(WHITE);
      ssd1306_set_cursor(10, 0);
      
    	  ssd1306_display();
    	
    	  show_text();
    	  
    		//APP_ERROR_CHECK(nrf_drv_spi_transfer(&spi, m_tx_buf, m_length, m_rx_buf, m_length));
    		
    	  while(spi_xfer_done)
    	  {
    		
    	    if(button_pressed) 
    				{
    			  show_text();
    			  button_pressed = false;
    		    }
        		__WFE();
    				
    	  //SDC Main Code ends here
      		  power_manage();
    	  }
     }
    

    }

Reply
  • This is how my main(void) looks like:-

    int main(void) { APP_ERROR_CHECK(NRF_LOG_INIT(NULL));

    NRF_LOG_INFO("SPI example\r\n");
    
    nrf_drv_spi_config_t spi_config = NRF_DRV_SPI_DEFAULT_CONFIG;
    spi_config.ss_pin   = ARDUINO_4_PIN;
    spi_config.miso_pin = ARDUINO_12_PIN;
    spi_config.mosi_pin = ARDUINO_11_PIN;
    spi_config.sck_pin  = ARDUINO_13_PIN;
    APP_ERROR_CHECK(nrf_drv_spi_init(&spi, &spi_config, spi_event_handler));
    
    //CHANGES ENDS HERE
    	
    while (1)
    {
      //Reset rx buffer and transfer done flag			 
    		memset(m_rx_buf, 0, m_length);
      spi_xfer_done = false;
    		 		 
     		//SDC Main starts here
    		 
    	  APP_ERROR_CHECK(nrf_drv_spi_transfer(&spi, m_tx_buf, m_length, m_rx_buf, m_length));
    
        while (!spi_xfer_done)
    			{
    		     __WFE();
        }
    	  bsp_board_leds_init();
    
      APP_ERROR_CHECK(NRF_LOG_INIT(NULL));
      NRF_LOG_INFO("\r\nFATFS example.\r\n\r\n");
    
      fatfs_example();
    	
      APP_ERROR_CHECK(nrf_drv_spi_transfer(&spi, m_tx_buf, m_length, m_rx_buf, m_length));
    
      while (!spi_xfer_done)
      {
            __WFE();
        }
    		 
    		memset(m_rx_buf, 0, m_length);
      spi_xfer_done = false;
    
    		nrf_drv_spi_switch_chips(&spi, SPI_SS_PIN_1);
    		 
    	  //static const nrf_drv_spi_t spi = NRF_DRV_SPI_INSTANCE(1); 
    		 
      APP_ERROR_CHECK(nrf_drv_spi_transfer(&spi, m_tx_buf, m_length, m_rx_buf, m_length));
    
      while (!spi_xfer_done)
      {
            __WFE();
      }
    
      ssd1306_power_on();
        ssd1306_init(SSD1306_CONFIG_DC_PIN,
                   SSD1306_CONFIG_RST_PIN,
                   SSD1306_CONFIG_CS_PIN,
                   SSD1306_CONFIG_CLK_PIN,
                   SSD1306_CONFIG_MOSI_PIN);
        ssd1306_begin(SSD1306_SWITCHCAPVCC, SSD1306_I2C_ADDRESS, true);
    	
    	  init_text();
        ssd1306_clear_display();
      ssd1306_set_textsize(2);
      ssd1306_set_textcolor(WHITE);
      ssd1306_set_cursor(10, 0);
      
    	  ssd1306_display();
    	
    	  show_text();
    	  
    		//APP_ERROR_CHECK(nrf_drv_spi_transfer(&spi, m_tx_buf, m_length, m_rx_buf, m_length));
    		
    	  while(spi_xfer_done)
    	  {
    		
    	    if(button_pressed) 
    				{
    			  show_text();
    			  button_pressed = false;
    		    }
        		__WFE();
    				
    	  //SDC Main Code ends here
      		  power_manage();
    	  }
     }
    

    }

Children
No Data
Related