STM32F405 的SPI速率问题

2019-07-20 03:32发布

u8 SPI1_ReadWriteByte(u8 TxData)
{                                          
  while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET){}//
  SPI_I2S_SendData(SPI1, TxData); //
  while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET){} //
  return SPI_I2S_ReceiveData(SPI1); //                     
}

u8 Device_ReadByte(unsigned char ucreg)   
{  
        u8 byte=0;   
        DEVICE_CS=0;                            //使能器件   
        SPI1_ReadWriteByte(ucReg);    //发送读取状态寄存器命令   
        byte=SPI1_ReadWriteByte(0Xff);             //读取一个字节  
        DEVICE_CS=1;                            //取消片选     
        return byte;   
}

这样的代码需要32个时钟周期
这样写的代码其实速率降低了一半。

怎么写才能是16个时钟周期?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。