在 SPI 配置完成后,我们可以实现与外部 SPI 从设备如 OLED 屏幕、SPI Flash 存储器、加速度传感器等进行数据交换。
向外设发送数据
通过 SPI 主控发送数据时,使用 SPI_SendData() 函数将数据写入发送数据寄存器,主控通过 SPI 总线发送数据给从设备。
c
void SPI_Send(uint8_t data)
{
// 等待 SPI 发送数据寄存器为空
while (spi_i2s_flag_get(SPI0, SPI_FLAG_TBE) == RESET);
// 发送数据
spi_i2s_data_transmit(SPI0, data);
}
从外设接收数据
接收数据时,主控通过 SPI_ReceiveData() 函数读取接收数据寄存器中的数据。
c
uint8_t SPI_Receive(void)
{
// 等待 SPI 接收数据寄存器不为空
while (spi_i2s_flag_get(SPI0, SPI_FLAG_RBNE) == RESET);
// 返回接收到的数据
return spi_i2s_data_receive(SPI0);
}
|