这里使用的是SPI0,开始老是读LIS3MDL_WHO_ID不正确,后来将CS脚也拿出来自己控制,还是读不正确,有时老是ERROR 17 【ERROR_BUSY】,End of error report ,后来将MISO,MOSI连个脚的ID 调换,居然好了,我也是醉了......
#define LIS3MDL_WHO_ID 0x3D
static volatile bool spi_xfer_done;
#define SPI_INSTANCE 0 /**< SPI instance index. */
static const nrf_drv_spi_t spi = NRF_DRV_SPI_INSTANCE(SPI_INSTANCE); /**< SPI instance. */
// Constructors
/**
* @brief SPI user event handler.
* @param event
*/
void LIS3MDL_spi_event_handler(nrf_drv_spi_evt_t const *p_event,
void *p_context) {
spi_xfer_done = true;
}
/**@INITIALIZE SPI INSTANCE */
void LIS3MDL_SPI_init(void) {
nrf_drv_spi_config_t spi_config = NRF_DRV_SPI_DEFAULT_CONFIG;
spi_config.miso_pin = LIS3MDL_MISO_PIN;
spi_config.sck_pin = LIS3MDL_SCK_PIN;