STM32学习-24-[SPI]数据收发

SPI总线数据收发的特点

image

编写接口

image

SPI数据收发过程简介

image

PixPin_2026-09-01_15-21-43
从图中可以看出 发送和接收是同时进行的,发送一bity就会接收一bity

image

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);
}
posted @ 2026-09-01 15:25  灵垚克府  阅读(7)  评论(0)    收藏  举报