【发布时间】:2019-10-19 18:50:39
【问题描述】:
我正在使用 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);
我尝试过的事情:
如何让它更快地切换?我应该在 SPI 完成时创建和中断并在那里设置锁存器吗?
【问题讨论】:
-
那是哪个控制器,时钟频率是多少?有什么要求,之前/之后可接受的延迟?
-
@berendi 在他的回答中写道,如果您使用 HAL,请准备好这些功能会变慢。