Hi,
I Implement void WriteRegister and ReadRegister SPI interface with mfrc532 but some time right,some time wrong.
Some time i write value in a regsister and i read again it is same value, some time it not same value @@
I have tried implement many different ways of reading and writing function but not success.
m_rx_buf of nrf52 recived unexpected data.
static uint8_t m_rx_buf[1];
void PCD_WriteRegister(byte reg, byte value){
nrf_gpio_pin_write(SPI_SS_PIN,0);
m_tx_buf[0] = reg &0x7E;
m_tx_buf[1] = value;
memset(m_rx_buf, 0, m_length);
spi_xfer_done = false;
nrf_drv_spi_transfer(&spi,&m_tx_buf[0], 2, NULL, 0);
while (!spi_xfer_done)
{
__WFE();
}
NRF_LOG_FLUSH();
nrf_gpio_pin_write(SPI_SS_PIN,1);
}
byte PCD_ReadRegister(byte reg){
nrf_gpio_pin_write(SPI_SS_PIN,0);
m_tx_buf[0] = (0x80 | (reg & 0x7E));
memset(m_rx_buf, 0, m_length);
spi_xfer_done = false;
nrf_drv_spi_transfer(&spi,&m_tx_buf[0], 1, m_rx_buf, 1);
while (!spi_xfer_done)
{
__WFE();
}
memset(m_rx_buf, 0, m_length);
spi_xfer_done = false;
uint8_t _reg = 0x00;
nrf_drv_spi_transfer(&spi,&_reg, 1, m_rx_buf, 1);
while (!spi_xfer_done)
{
__WFE();
}
NRF_LOG_FLUSH();
nrf_gpio_pin_write(SPI_SS_PIN,1);
return m_rx_buf[0];
}

Write: 
I useing SDK 16. NRF52832.