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个时钟周期?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
edmund1234
1楼-- · 2019-07-20 04:19
 精彩回答 2  元偷偷看……
yunhongli
2楼-- · 2019-07-20 07:11
edmund1234 发表于 2019-2-25 14:49
用DMA吧

DMA是连续地址的数据,而且速率还是这么多。我需要提高速率
edmund1234
3楼-- · 2019-07-20 11:17
 精彩回答 2  元偷偷看……
北名若水
4楼-- · 2019-07-20 14:20
 精彩回答 2  元偷偷看……

一周热门 更多>