我的400 my内核时钟和预分频器256仅在此配置下,我的SPI正在生成Clk、MISO、MOSI、CS信号,当我更改除此值以外的预分频器值时,不会生成任何信号,代码进入环路,设备忙状态返回。
在此配置下,仅运行1.56 clk clk速度。我想提高SPI的时钟速度。请帮帮我。
我的SPI初始化如下:
hspi1.Instance = SPI1;
hspi1.Init.Mode = SPI_MODE_MASTER;
hspi1.Init.Direction = SPI_DIRECTION_2LINES;
hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH;
hspi1.Init.CLKPhase = SPI_PHASE_2EDGE;
hspi1.Init.NSS = SPI_NSS_SOFT;
//hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_256;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
hspi1.Init.CRCPolynomial = 7;
hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;我想以80或100 Mhz执行SPI clk,这是STM32中SPI的最大执行速度。
发布于 2019-09-03 20:47:00
我也遇到过完全相同的问题,这是由于GPIO输出速度设置造成的。您应选中并将其更改为超高速(寄存器GPIOx_OSPEEDR)。
https://stackoverflow.com/questions/57769918
复制相似问题