STM32F401 Nucleo SPI时钟问题,使用STM32CubeF4

时间:2014-07-02 04:58:51

标签: c stm32 spi

STM32F401RE - > CortexM4 我正在使用带有HAL低电平驱动器的SPI1,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数据不匹配。 这是一个非常放大的图片,如果需要,我可以发送整个逻辑分析器文件。

enter image description here

对于读写,我正在使用 HAL_spi_transmit(& hspi,Byte,1,5); HAL_spi_Receive(& hspi,Byte,1,5);

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

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

1 个答案:

答案 0 :(得分:0)

我可以想象只有像

这样的命令流
SET_SCK_HIGH();
SET_MOSI_HIGH();
在主人中

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