STM32F401RE-> CortexM4
我正在将SPI1与HAL低级驱动程序STM32CubeF4一起使用。
我使用了以下SPI配置:

SPI_HandleTypeDef hspi;
hspi.Instance=SPI1;
hspi.Init.Mode=SPI_MODE_MASTER;
hspi.Init.Direction=SPI_DIRECTION_2LINES;
hspi.Init.DataSize=SPI_DATASIZE_8BIT;
hspi.Init.CLKPolarity=SPI_POLARITY_HIGH;
hspi.Init.CLKPhase=SPI_PHASE_1EDGE;
hspi.Init.NSS=SPI_NSS_SOFT;
hspi.Init.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_256;
hspi.Init.FirstBit=SPI_FIRSTBIT_MSB;
hspi.Init.TIMode=SPI_TIMODE_ENABLED;
hspi.Init.CRCCalculation=SPI_CRCCALCULATION_DISABLED;
hspi.Init.CRCPolynomial=0;
HAL_SPI_Init(&hspi);


在MOSI上发送一些字节后。在逻辑分析仪上,我看到时钟和MOSI数据不匹配。
这是一个非常放大的图片,如果需要,我可以发送整个逻辑分析器文件。



为了读写,我正在使用
HAL_spi_transmit(&hspi,字节,1,5);
HAL_spi_Receive(&hspi,字节,1,5);

我使用std periph库对stm32l151rct6a进行了几乎相同的spi配置,并且可以正常工作。

问题:为什么时钟不与MOSI同步?

最佳答案

我可以想象只有一个命令流

SET_SCK_HIGH();
SET_MOSI_HIGH();


在母版中,因此效果在稍微不同的时间可见。

10-08 11:38