Dingo (14.07.2017 11:50, просмотров: 1706)
Не могу настроить SPI1 у STM32F407, чтобы SCK в покое был высоким. Вроде всё по описаниям делаю - и фигвам. /* Enable clock SPI */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
/* Pin done, go SPI */
SPI_I2S_DeInit( SPI1 );
SPI_Cmd( SPI1, DISABLE);
// SPI_InitStructure.SPI_BaudRatePrescaler = spi_presc<<3;
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_32;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_RxOnly;
SPI_InitStructure.SPI_CRCPolynomial = 7;
SPI_Init( SPI1, &SPI_InitStructure);
SPI_NSSInternalSoftwareConfig( SPI1, SPI_NSSInternalSoft_Set);
SPI_Cmd( SPI1, DISABLE); // оставил на всякий случай
Никто не сталкивался? Осциллограф кажет, что все пляски начинаются с нуля. У меня режим UNIDERICTION RXONLY. Складывает принятое в память по DMA. Можете попробовать, кому не лениво?