找到原因了,低级错误。

Uint8 Spi378Exchange(Uint8 data)

{

? while(RESET == (SPI_STAT(ch378_spi)&SPI_FLAG_TBE));? ? ?// 等待SPI发送为空

? SPI_DATA(ch378_spi) = data;? // 发送数据

? while(RESET == (SPI_STAT(ch378_spi)&SPI_FLAG_TBE));? ? ?// 等待SPI发送为空

? return(SPI_DATA(ch378_spi));? // 返回接收的数据

}

改为如下:

Uint8 Spi378Exchange(Uint8 data)

{

? while(RESET == (SPI_STAT(ch378_spi)&SPI_FLAG_TBE));? ? ?// 等待SPI发送为空

? SPI_DATA(ch378_spi) = data;? // 发送数据

? while(RESET == (SPI_STAT(ch378_spi)&SPI_FLAG_RBNE));? ? ?// 等待接收到数据

? return(SPI_DATA(ch378_spi));? // 返回接收的数据

}