SPI库函数

1.void SPI_I2S_DeInit(SPI_TypeDef* SPIx)

功能:将SPIx外设寄存器还原为它们的默认重置值(也会影响I2Ss)

注释:调用RCC_APBxPeriphResetCmd函数初始化外设寄存器

例如:SPI_I2S_DeInit(SPI1);

 

2.void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct)

功能:根据SPI_InitStruct中的指定参数初始化SPIx外设

例如:SPI_Init(SPI1 , &SPI_InitStructure);

 

3.void I2S_Init(SPI_TypeDef* SPIx, I2S_InitTypeDef* I2S_InitStruct)

功能:根据I2S_InitStruct中指定的参数初始化SPIx外设

例如:I2S_Init(SPI1 , &I2S_InitStructure);

 

4.void SPI_StructInit(SPI_InitTypeDef* SPI_InitStruct)

功能:用默认值填充结构体SPI_InitStruct的每个成员

注释:只填充,不涉及Init的寄存器写入操作

例如:SPI_StructInit(&SPI_InitStructure);

 

5.void I2S_StructInit(I2S_InitTypeDef* I2S_InitStruct)

功能:用默认值填充结构体I2S_InitStruct的每个成员

注释:只填充,不涉及Init的寄存器写入操作

例如:I2S_StructInit(&I2S_InitStructure);

 

6.void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState)

功能:使能或者失能SPI外设

例如:SPI_Cmd(SPI1 , ENABLE);

 

7.void I2S_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState)

功能:使能或者失能指定的SPI外围设备(在I2S模式下)

例如:I2S_Cmd(I2S1 , ENABLE);

 

8.void SPI_I2S_ITConfig(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT, FunctionalState NewState)

功能:配置指定的SPI/I2S中断

例如:SPI_I2S_ITConfig(SPI1 , SPI_I2S_IT_TXE , ENABLE);

 

9.void SPI_I2S_DMACmd(SPI_TypeDef* SPIx, uint16_t SPI_I2S_DMAReq, FunctionalState NewState)

功能:使能或者失能SPIx/I2Sx的DMA接口

例如:SPI_I2S_DMACmd(SPI1 , SPI_I2S_DMAReq_Tx , ENABLE);

 

10.void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data)

功能:通过SPIx/I2Sx外设传输数据

注释:数据的发送和接收可以是8位或者16位的。为保证正确的操作,需要在启用SPI之前就确定好数据帧格式

例如:SPI_I2S_SendData(SPI1 , 0xFF);

 

11.uint16_t SPI_I2S_ReceiveData(SPI_TypeDef* SPIx)

功能:返回SPIx/I2Sx外设最近接收的数据。

注释:数据的发送和接收可以是8位或者16位的。为保证正确的操作,需要在启用SPI之前就确定好数据帧格式

例如:data = SPI_I2S_ReceiveData(SPI1);

 

12.void SPI_NSSInternalSoftwareConfig(SPI_TypeDef* SPIx, uint16_t SPI_NSSInternalSoft)

功能:通过软件内部配置选定SPI的NSS引脚

注释:操作寄存器:SSI:内部从设备选择 (Internal slave select);

           该位只在软件从设备管理启用时有意义,它决定了NSS上的电平,在NSS引脚上的I/O操作无效;

           I2S模式下不使用

例如:SPI_NSSInternalSoftwareConfig(SPI1 , SPI_NSSInternalSoft_Set);

 

13.void SPI_SSOutputCmd(SPI_TypeDef* SPIx, FunctionalState NewState)

功能:使能或者失能SS输出

注释:设备能否工作在多主设备模式;I2S模式下不使用

例如:SPI_SSOutputCmd(SPI1 , ENABLE);

 

14.void SPI_DataSizeConfig(SPI_TypeDef* SPIx, uint16_t SPI_DataSize)

功能:为所选SPI配置数据大小

例如:SPI_DataSizeConfig(SPI1 , SPI_DataSize_8b);

 

15.void SPI_TransmitCRC(SPI_TypeDef* SPIx)

功能:发送SPIx的CRC值

注释:配置下一个发送的值来自发送缓冲区还是发送CRC寄存器;

           在SPI_DR寄存器写入最后一个数据后应马上设置该位;

           I2S模式下不使用

例如:SPI_TransmitCRC(SPI1);

 

16.void SPI_CalculateCRC(SPI_TypeDef* SPIx, FunctionalState NewState)

功能:使能或失能硬件CRC校验

注释:只有在禁止SPI时(SPE=0),才能写该位,否则出错;

           该位只能在全双工模式下使用;

           I2S模式下不使用

例如:SPI_CalculateCRC(SPI1 , ENABLE);

 

17.uint16_t SPI_GetCRC(SPI_TypeDef* SPIx, uint8_t SPI_CRC)

功能:返回指定SPI的发送或接收CRC寄存器值

注释:当BSY标志为’1’时读该寄存器,将可能读到不正确的数值;

           在I2S模式下不使用

例如:crc = SPI_GetCRC(SPI1 , SPI_CRC_Tx);

 

18.uint16_t SPI_GetCRCPolynomial(SPI_TypeDef* SPIx)

功能:返回指定SPI的CRC多项式寄存器值

注释:该寄存器包含了CRC计算时用到的多项式;

           在I2S模式下不使用

例如:crcpr = SPI_GetCRCPolynomial(SPI1);

 

19.void SPI_BiDirectionalLineConfig(SPI_TypeDef* SPIx, uint16_t SPI_Direction)

功能:为指定的SPI选择双向模式下的数据传输方向

注释:双向模式下的输出使能,决定在“单线双向”模式下数据的输出方向

          这个“单线”数据线在主设备端为MOSI引脚,在从设备端为MISO引脚

          在I2S模式下不使用

例如:SPI_BiDirectionalLineConfig(SPI1 , SPI_Direction_Tx);

 

20.FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG)

功能:检查指定的SPI/I2S标志是否设置

注释:SR状态寄存器的各种标志位

例如:status = SPI_I2S_GetFlagStatus(SPI1 , SPI_I2S_FLAG_TXE);

 

21.void SPI_I2S_ClearFlag(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG)

功能:清除SPIx CRC错误(CRCERR)标志

注释:此函数只清除CRCERR标志

          其他标志位可用其他方式清除具体可看参考手册或者库函数相应的.h文件

例如:SPI_I2S_ClearFlag(SPI1 , SPI_FLAG_CRCERR);

 

22.ITStatus SPI_I2S_GetITStatus(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT)

功能:检查指定的SPI/I2S中断是否发生

注释:也是SR状态寄存器的各种标志位,但多了中断使能位的开启检查

例如:status = SPI_I2S_GetITStatus(SPI1 , SPI_I2S_IT_TXE);

 

23.void SPI_I2S_ClearITPendingBit(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT)

功能:清除SPIx CRC错误(CRCERR)中断挂起位

注释:此函数只清除CRCERR中断挂起位

           其他中断标志可用其他方式清除,具体可看参考手册或者库函数相应的.h文件

例如:SPI_I2S_ClearITPendingBit(SPI1 , SPI_IT_CRCERR);

 

你可能感兴趣的:(STM32标准库)