void SPI_ClearITPendingBit(SPI_TypeDef* SPIx, u8 SPI_IT)函数中有:
if(SPI_IT == SPI_IT_MODF)
{
/* Read SR register */
(void)SPIx->SR;
/* Write on CR1 register */
SPIx->CR1 |= CR1_SPE_Set;
}
读取SR寄存器,用(void)SPIx->SR;
这句话不大明白,用(void)SPIx->SR;就表示了读取SR寄存器?这种写法没怎么见过啊!
哈哈,以前没见过,这次见识了就学会了!
用(void)SPIx->SR;就表示了读取SR寄存器!
一般读取寄存器都是要把读到的数据赋值到某个变量,但如果不关心读取到的数据则可以用这种写法,但注意被操作的寄存器必须是声明为volatile。
volatile
volatile 是防止该语句被编译器优化。