STM32F4xx准系统SPI(HAL初始化)

2019-07-14 17:47发布

我正在为STM32F4xx设备开发一个软件,该软件是从STM32CubeMX生成的项目开始的。我正在使用已使用HAL库初始化的SPI外设。这是一个工作的SPI写入功能的示例:
void spi_write(uint8_t data) {
    HAL_SPI_Transmit(&hspi2,&data,1,HAL_MAX_DELAY);
}
如果我想在不使用HAL库的情况下使用SPI发送数据,但是在寄存器上做它的准系统(因为它更快)它不起作用。这是我的实现:
  1. void spi_write(uint8_t data) {
  2.     (&hspi2)->Instance->DR = data;
  3.     while (!((&hspi2)->Instance->SR & ((uint16_t)0x0002))); //Check TXE flag (SPI_I2S_FLAG_TXE)
  4.     while ((&hspi2)->Instance->SR & ((uint16_t)0x0080)); // Check busy flag (SPI_I2S_FLAG_BSY)
  5. }
复制代码知道为什么第二个实现不起作用?谢谢!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。