Thank you for your help, I try to use another example code to test my SPI without use DMA,
But I found the CS have no change on my Oscilloscope, it should be a line, but not.
I don't know what happend, maybe I forgot to do some important configurations?
The following is my code:
void spiinit();
/*****************************/
int main(void)
{
PE_low_level_init();
spiinit();
for(;;){
SPI0_MCR &= ~(SPI_MCR_HALT_MASK | SPI_MCR_FRZ_MASK);
SPI0_SR &= ~SPI_SR_EOQF_MASK;
SPI0_PUSHR = (SPI_PUSHR_EOQ_MASK | SPI_PUSHR_PCS(1) | 0x01);
while(!(SPI0_SR | SPI_SR_TCF_MASK));
SPI0_SR |= SPI_SR_TCF_MASK | SPI_SR_EOQF_MASK;
SPI0_MCR |= SPI_MCR_HALT_MASK;
}
return 0;
]
/*=============== Functions declaration ====================*/
/***********************************/
void spiinit(){
//Clock settings
SIM_SCGC5 |= SIM_SCGC6_DSPI0_MASK;
SIM_SCGC6 |= SIM_SCGC5_PORTD_MASK;
//Port Settings
/* PORTD_PCR19: ISF=0,MUX=2 */
PORTD_PCR19 = (uint32_t)((PORTD_PCR19 & (uint32_t)~(uint32_t)(
PORT_PCR_ISF_MASK |
PORT_PCR_MUX(0x05)
)) | (uint32_t)(
PORT_PCR_MUX(0x02)
));
/* PORTD_PCR18: ISF=0,MUX=2 */
PORTD_PCR18 = (uint32_t)((PORTD_PCR18 & (uint32_t)~(uint32_t)(
PORT_PCR_ISF_MASK |
PORT_PCR_MUX(0x05)
)) | (uint32_t)(
PORT_PCR_MUX(0x02)
));
/* PORTD_PCR17: ISF=0,MUX=2 */
PORTD_PCR17 = (uint32_t)((PORTD_PCR17 & (uint32_t)~(uint32_t)(
PORT_PCR_ISF_MASK |
PORT_PCR_MUX(0x05)
)) | (uint32_t)(
PORT_PCR_MUX(0x02)
));
/* PORTD_PCR16: ISF=0,MUX=2 */
PORTD_PCR16 = (uint32_t)((PORTD_PCR16 & (uint32_t)~(uint32_t)(
PORT_PCR_ISF_MASK |
PORT_PCR_MUX(0x05)
)) | (uint32_t)(
PORT_PCR_MUX(0x02)
));
SPI0_RSER = 0;
SPI0_TCR = 0;
SPI0_SR = (SPI_SR_TCF_MASK | SPI_SR_TXRXS_MASK | SPI_SR_EOQF_MASK | SPI_SR_TFUF_MASK | SPI_SR_TFFF_MASK | SPI_SR_RFOF_MASK | SPI_SR_RFDF_MASK);
SPI0_MCR =0;
SPI0_MCR = SPI_MCR_MSTR_MASK | (0 << SPI_MCR_FRZ_SHIFT) | SPI_MCR_PCSIS(1) | SPI_MCR_DCONF(0) | (1 << SPI_MCR_DIS_TXF_SHIFT) | (1 << SPI_MCR_DIS_RXF_SHIFT) | (1 << SPI_MCR_CLR_TXF_SHIFT) | (1 << SPI_MCR_CLR_RXF_SHIFT) | (1 << SPI_MCR_HALT_SHIFT);
SPI0_CTAR0 = 0;
SPI0_CTAR0 |= (0 << SPI_CTAR_DBR_SHIFT) | SPI_CTAR_FMSZ(7) | (0 << SPI_CTAR_CPOL_SHIFT) | (0 << SPI_CTAR_CPHA_SHIFT) | (0 << SPI_CTAR_LSBFE_SHIFT) | SPI_CTAR_PCSSCK(0) | SPI_CTAR_CSSCK(1) | SPI_CTAR_ASC(0) | SPI_CTAR_PDT(3) | SPI_CTAR_DT(5) | SPI_CTAR_BR(1);
}
/**********************************************/
/* END main */