各位哥哥姐姐们,硬件的spi单线传输怎么使用啊。
最近在用一款屏幕,是单线传输的,想要读取设备的ID或者其他寄存器,但切换spi的收发模式,就会出问题。
while(TFT_SPIx->SR & SPI_I2S_FLAG_BSY) {}; // 等待SPI空闲
LCD_DC_Clr(); // 写命令
TFT_SPIx->DR = 0x0C; // 读取寄存器
while(TFT_SPIx->SR & SPI_I2S_FLAG_BSY) {}; // 等待SPI空闲
LCD_DC_Set();
TFT_SPIx->CR1 &= ~(1<<14); //切换到接收状态 B14 -> 0 B15 - >1
GPIO_Set_Mode(TFT_SDA , GPIO_TP_IPU); //上拉输入
while(TFT_SPIx->SR & SPI_I2S_FLAG_BSY) {}; //读数据
uData = SPI_I2S_ReceiveData(TFT_SPIx);
while(TFT_SPIx->SR & SPI_I2S_FLAG_BSY) {};
TFT_SPIx->CR1 |= 1 << 14; //切换回发送状态 |