写一个SPI字节的时候要读取数据,因为SPI为双线结构,只要时钟线有信号,两条线上都会有信号,只发送数据,要读取的数据的时候再读取,这样子会造成溢出标志OVR被置1,因为平时的数据没有被读取,又来一个,真正要读取的时候,就会发现,怎么都是FF,因为发送OVR之后,还是DR的内容不会被修改,所以都是FF。
CRCERR,OVR,MODF溢出标志位均在SPI的SR寄存器当中,
OVR一旦硬件置位需要软件清零,
直接将寄存器读出即可SPI->SR;
也可提前设置禁止溢出中断,在SPI 的CR2中设置
SPI->CR2|=0<<5;
0禁止中断;
1允许中断。