when SPI master transmits a data, SPI slave sends a data back to master at the same time. This is a nature of the SPI interface. So, when you want to only transmit a data by master, you will always receive data from slave. You can just disregard such data. When you want to receive a data from slave, master must send some data to slave, so the slave can send the data back. Solution for this is to send a dummy data to slave.
Thank you for the replying!
If I only want to receive the data, how the function should be called?
Additionally, If I want to receive by DMA, which function should be called?
If you want to receive a data from slave, you need to transmit dummy data (like 0xFF), so the slave can clock out the data.
There's an example lpspi_dma: