关于51单片机SPI通信的几个问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 11:33:25
1.SPI寄存器的数据在发送完成后是自动清0还是保持不变?
2.SPI完成一次通信后,是否传输完成标志位SPIF都会置位(发送或者被发送)?
3.能否提供51单片的SPI通信源代码?最好是STC单片机的。

初始化中对SPCTL操作来设置SPI的速率和工作方式
SPCTL = 0x4C; //设置SPI口工作方式为1主多从中的从
AUXR = 0x08; //开SPI中断

中断函数,SPI同LVDI共享中断5
void SPI_Interrupt(void) interrupt 5
{
SPSTAT = 0xC0; //向SPIF和WCOL写入1使其清零
DataBuffer[count++] = SPDAT;
return;
}

1. STC的SPI口发送完以后保持不变。
2. 每次通信(包括输入或者输出)以后SPIF都会自动置位,用来产生中断(如果允许的话)
3. 简单的历程看上面,自己修改加自己的工程里