相关疑难解决方法(0)

STM32 SPI慢速计算

我正在使用STM32F4及其SPI与本教程中的74HC595进行通信。区别在于初学者,为简单起见,我使用非DMA版本。我使用STMCubeMX配置SPI和GPIO

问题是:我没有获得锁存器PIN,我将其设置为PA8以在传输期间足够快地切换。

在此处输入图片说明

我正在使用的代码:

        spiTxBuf[0] = 0b00000010;

        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET);


        HAL_SPI_Transmit(&hspi1, spiTxBuf, 1, HAL_MAX_DELAY);
//        while(HAL_SPI_GetState(&hspi1) != HAL_SPI_STATE_READY);

        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_SET);

        HAL_Delay(1);
Run Code Online (Sandbox Code Playgroud)

我尝试过的事情:

  1. 将引脚PA8的最大输出速度设置为非常快 在此处输入图片说明

  2. 等待SPI完成(请参见上面的注释行)

  3. 如此处所示,将DMA用于SPI,这实际上使它变慢了。

我如何才能更快地切换?我应该在SPI完成后创建并中断并在那里设置锁存器吗?

embedded spi stm32

4
推荐指数
2
解决办法
295
查看次数

标签 统计

embedded ×1

spi ×1

stm32 ×1