功能:将SPIx外设寄存器还原为它们的默认重置值(也会影响I2Ss)
注释:调用RCC_APBxPeriphResetCmd函数初始化外设寄存器
例如:SPI_I2S_DeInit(SPI1);
功能:根据SPI_InitStruct中的指定参数初始化SPIx外设
例如:SPI_Init(SPI1 , &SPI_InitStructure);
功能:根据I2S_InitStruct中指定的参数初始化SPIx外设
例如:I2S_Init(SPI1 , &I2S_InitStructure);
功能:用默认值填充结构体SPI_InitStruct的每个成员
注释:只填充,不涉及Init的寄存器写入操作
例如:SPI_StructInit(&SPI_InitStructure);
功能:用默认值填充结构体I2S_InitStruct的每个成员
注释:只填充,不涉及Init的寄存器写入操作
例如:I2S_StructInit(&I2S_InitStructure);
功能:使能或者失能SPI外设
例如:SPI_Cmd(SPI1 , ENABLE);
功能:使能或者失能指定的SPI外围设备(在I2S模式下)
例如:I2S_Cmd(I2S1 , ENABLE);
功能:配置指定的SPI/I2S中断
例如:SPI_I2S_ITConfig(SPI1 , SPI_I2S_IT_TXE , ENABLE);
功能:使能或者失能SPIx/I2Sx的DMA接口
例如:SPI_I2S_DMACmd(SPI1 , SPI_I2S_DMAReq_Tx , ENABLE);
功能:通过SPIx/I2Sx外设传输数据
注释:数据的发送和接收可以是8位或者16位的。为保证正确的操作,需要在启用SPI之前就确定好数据帧格式
例如:SPI_I2S_SendData(SPI1 , 0xFF);
功能:返回SPIx/I2Sx外设最近接收的数据。
注释:数据的发送和接收可以是8位或者16位的。为保证正确的操作,需要在启用SPI之前就确定好数据帧格式
例如:data = SPI_I2S_ReceiveData(SPI1);
功能:通过软件内部配置选定SPI的NSS引脚
注释:操作寄存器:SSI:内部从设备选择 (Internal slave select);
该位只在软件从设备管理启用时有意义,它决定了NSS上的电平,在NSS引脚上的I/O操作无效;
I2S模式下不使用
例如:SPI_NSSInternalSoftwareConfig(SPI1 , SPI_NSSInternalSoft_Set);
功能:使能或者失能SS输出
注释:设备能否工作在多主设备模式;I2S模式下不使用
例如:SPI_SSOutputCmd(SPI1 , ENABLE);
功能:为所选SPI配置数据大小
例如:SPI_DataSizeConfig(SPI1 , SPI_DataSize_8b);
功能:发送SPIx的CRC值
注释:配置下一个发送的值来自发送缓冲区还是发送CRC寄存器;
在SPI_DR寄存器写入最后一个数据后应马上设置该位;
I2S模式下不使用
例如:SPI_TransmitCRC(SPI1);
功能:使能或失能硬件CRC校验
注释:只有在禁止SPI时(SPE=0),才能写该位,否则出错;
该位只能在全双工模式下使用;
I2S模式下不使用
例如:SPI_CalculateCRC(SPI1 , ENABLE);
功能:返回指定SPI的发送或接收CRC寄存器值
注释:当BSY标志为’1’时读该寄存器,将可能读到不正确的数值;
在I2S模式下不使用
例如:crc = SPI_GetCRC(SPI1 , SPI_CRC_Tx);
功能:返回指定SPI的CRC多项式寄存器值
注释:该寄存器包含了CRC计算时用到的多项式;
在I2S模式下不使用
例如:crcpr = SPI_GetCRCPolynomial(SPI1);
功能:为指定的SPI选择双向模式下的数据传输方向
注释:双向模式下的输出使能,决定在“单线双向”模式下数据的输出方向
这个“单线”数据线在主设备端为MOSI引脚,在从设备端为MISO引脚
在I2S模式下不使用
例如:SPI_BiDirectionalLineConfig(SPI1 , SPI_Direction_Tx);
功能:检查指定的SPI/I2S标志是否设置
注释:SR状态寄存器的各种标志位
例如:status = SPI_I2S_GetFlagStatus(SPI1 , SPI_I2S_FLAG_TXE);
功能:清除SPIx CRC错误(CRCERR)标志
注释:此函数只清除CRCERR标志
其他标志位可用其他方式清除,具体可看参考手册或者库函数相应的.h文件
例如:SPI_I2S_ClearFlag(SPI1 , SPI_FLAG_CRCERR);
功能:检查指定的SPI/I2S中断是否发生
注释:也是SR状态寄存器的各种标志位,但多了中断使能位的开启检查
例如:status = SPI_I2S_GetITStatus(SPI1 , SPI_I2S_IT_TXE);
功能:清除SPIx CRC错误(CRCERR)中断挂起位
注释:此函数只清除CRCERR中断挂起位
其他中断标志可用其他方式清除,具体可看参考手册或者库函数相应的.h文件
例如:SPI_I2S_ClearITPendingBit(SPI1 , SPI_IT_CRCERR);