比如写数据,原先4线的程序是先写,再读取一下:
while (SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData(SPIx, Data);
while (SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_RXNE) == RESET);
SPI_I2S_ReceiveData(SPIx);
闲得蛋疼,想改成3线的,没找到例子,凭想象改成了:
SPI_BiDirectionalLineConfig(SPIx, SPI_Direction_Tx);
SPI_I2S_SendData(SPIx, Data);
while (SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_TXE) == RESET);
貌似不能用,不知道3线模式下的读写程序该怎么写。
ps:另外如果配置成3线模式,不知道原先的SPI_MISO是否可以另作为AD输入(PA6本身有MISO和ADC_IN6功能)。不能用就不折腾了。 |