void SPI_close(void) { #ifdef SPI_MASTER_0_ENABLE spi_master_close(SPI_MASTER_0); #elif defined(SPI_MASTER_1_ENABLE) spi_master_close(SPI_MASTER_1); #endif }
/**@brief Handler for SPI1 master events. * * @param[in] spi_master_evt SPI master event. */ void spi_master_1_event_handler(spi_master_evt_t spi_master_evt) { uint32_t err_code = NRF_SUCCESS; bool result = false; switch (spi_master_evt.evt_type) { case SPI_MASTER_EVT_TRANSFER_COMPLETED: // Check if received data is correct. result = check_buf_equal(m_tx_data_spi, m_rx_data_spi, TX_RX_MSG_LENGTH); APP_ERROR_CHECK_BOOL(result); // Close SPI master. spi_master_close(SPI_MASTER_1); err_code = bsp_indication_set(BSP_INDICATE_RCV_OK); APP_ERROR_CHECK(err_code); m_transfer_completed = true; break; default: // No implementation needed. break; } }
/* ser_phy API function */ void ser_phy_close(void) { m_spi_master_state = SER_PHY_STATE_DISABLED; m_callback_events_handler = NULL; buffer_release(&mp_tx_buffer, &m_tx_buf_len); buffer_release(&mp_rx_buffer, &m_rx_buf_len); m_tx_packet_length = 0; m_accumulated_tx_packet_length = 0; m_current_tx_packet_length = 0; m_rx_packet_length = 0; m_accumulated_rx_packet_length = 0; m_current_rx_packet_length = 0; ser_phy_deinit_gpiote(); spi_master_close(SER_PHY_SPI_MASTER); }