STM32 SPI接口的简单实现
//spi的配置结束了可以使用了。
也可用 函数SPI_StructInit 把SPI_InitStruct中的每一个参数按缺省值填入
_____________________________________________________________________________________
发送缓冲器空闲标志(TXE)
此标志为’1’时表明发送缓冲器为空,可以写下一个待发送的数据进入缓冲器中。当写入SPI_DR时,TXE标志被清除。
接收缓冲器非空(RXNE)
此标志为’1’时表明在接收缓冲器中包含有效的接收数据。读SPI数据寄存器可以清除此标志。
注意在2.0的库中函数 SPI_SendData SPI_ReceiveDataSPI_GetFlagStatus 等在3.0的库中 变为
SPI_I2S_SendDataSPI_I2S_ReceiveData SPI_I2S_GetFlagStatus
写一个发送/接受函数
static u8 SPIByte(u8 byte)
{
while((SPI2->SR &SPI_I2S_FLAG_TXE)==RESET);
//while((SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_TXE))==RESET);
SPI2->DR = byte;
//SPI_I2S_SendData(SPI2,byte);
while((SPI2->SR &SPI_I2S_FLAG_RXNE)==RESET);
//while((SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_RXNE))==RESET);
return(SPI2->DR);
//returnSPI_I2S_ReceiveData(SPI2);读寄存器用硬件清除标志位。
//SPI_I2S_ClearFlag(SPI2,SPI_I2S_FLAG_RXNE) ;直接软件清除标志位。
}
这里有两种写法直接操作寄存器与用库函数,相对来说直接操作寄存器应该更直观一些
STM32SPI接 相关文章:
- STM32的SPI接口(11-25)
- stm32 SPI 接口(11-17)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)