以下是我师兄的程序,问一下:
执行了SPTAT=0xc0之后SPIF是不是等于零(SPIF为SPTAT的最高位)????
SPDAT = SPDAT什么意思?什么用处?
谢谢大侠们对小虾的指教!!!!
void main()
{
uchar i;
initUART(); //串口初始化
initSPI(); //SPI初始化
while (1)
{
if (RI) //判断RI是否为1,确定是否从串口接收到数据
{
SPCTL=0xdc; //设置为主机
i=SPIswap(recvUART());//将串口接收的数据用于SPI数据交换
sendUART(i); //接收到从机发回的数据经串口发送
SPCTL=0x4c; //发送完重置为从机
}
if (SPSTAT&0x80) //判断SPI传输是否完成
{
SPSTAT = 0xc0; //清SPI状态,写一清零
SPDAT = SPDAT; //mov data from receive buffer to send buffer
}
}
}