SPI2发送接收程序如下:
while(1)
{
MC33993_CS_0(); //选中从机
delay_us(1);
SPI_I2S_ClearFlag(SPI2,SPI_I2S_FLAG_RXNE); //清标志位
SPI_I2S_ClearFlag(SPI2,SPI_I2S_FLAG_TXE); //清标志位
SPI_I2S_SendData(SPI2, 0x01); //发送数据
while((SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_TXE))==RESET); //等待发送完成
while((SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_RXNE))!=RESET);//等待接收完成
delay_us(1);
SPI_I2S_ClearFlag(SPI2,SPI_I2S_FLAG_RXNE);
SPI_I2S_ClearFlag(SPI2,SPI_I2S_FLAG_TXE);
SPI_I2S_SendData(SPI2, 0x00);
while((SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_TXE))==RESET);
while((SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_RXNE))!=RESET);
delay_us(1);
SPI_I2S_ClearFlag(SPI2,SPI_I2S_FLAG_RXNE);
SPI_I2S_ClearFlag(SPI2,SPI_I2S_FLAG_TXE);
SPI_I2S_SendData(SPI2, 0xc0);
while((SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_TXE))==RESET);
while((SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_RXNE))!=RESET);
MC33993_CS_1();
re_data3 = SPI_I2S_ReceiveData(SPI2); //接收数据
}
|