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个时钟周期?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>