STM32学习-24-[SPI]数据收发
SPI总线数据收发的特点

编写接口

SPI数据收发过程简介


从图中可以看出 发送和接收是同时进行的,发送一bity就会接收一bity

void App_SPI_MasterTransmitReceive(SPI_TypeDef *SPIx, const uint8_t *pDataTx, uint8_t *pDataRx, uint16_t Size){
SPI_Cmd(SPIx, ENABLE); // #1。闭合总SPI_I2S_SendData(SPIx,pDataTx[0]); // #2.发送第一
for(uint16_t i=0; i<Size-1; i++){
// 发送一个字节
while(SPI_I2S_GetFLagStatus(SPIx, SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData(SPIx, pDataTx[i+1]);
// 接收一个字节
while(SPI_I2S_GetFLagStatus(SPIx, SPI_I2S_FLAG_RXNE) == RESET);
pDataRx[i] = SPI_I2S_ReceiveData(SPIx);
}
// #4.读出最后一个字节
while(SPI_I2S_GetFLagStatus(SPIx, SPI_I2S_FLAG_RXNE) == RESET);
pDataRx[Size-1] = SPI_I2S_ReceiveData(SPIx);
// #5.断开总开关
SPI_Cmd(SPIx, DISABLE);
}

浙公网安备 33010602011771号