41 hspi4.Instance = SPI4;
42 hspi4.Init.Mode = SPI_MODE_MASTER;
43 hspi4.Init.Direction = SPI_DIRECTION_1LINE;
44 hspi4.Init.DataSize = SPI_DATASIZE_8BIT;
45 hspi4.Init.CLKPolarity = SPI_POLARITY_LOW;
46 hspi4.Init.CLKPhase = SPI_PHASE_1EDGE;
47 hspi4.Init.NSS = SPI_NSS_SOFT;
48 hspi4.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
49 hspi4.Init.FirstBit = SPI_FIRSTBIT_MSB;
50 hspi4.Init.TIMode = SPI_TIMODE_DISABLE;
51 hspi4.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
52 hspi4.Init.CRCPolynomial = 0x0;
53 hspi4.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
54 hspi4.Init.NSSPolarity = SPI_NSS_POLARITY_LOW;
55 hspi4.Init.FifoThreshold = SPI_FIFO_THRESHOLD_01DATA;
56 hspi4.Init.TxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;
57 hspi4.Init.RxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;
58 hspi4.Init.MasterSSIdleness = SPI_MASTER_SS_IDLENESS_00CYCLE;
59 hspi4.Init.MasterInterDataIdleness = SPI_MASTER_INTERDATA_IDLENESS_00CYCLE;
60 hspi4.Init.MasterReceiverAutoSusp = SPI_MASTER_RX_AUTOSUSP_DISABLE;
61 hspi4.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_DISABLE;
62 hspi4.Init.IOSwap = SPI_IO_SWAP_DISABLE;
63 if (HAL_SPI_Init(&
hspi4) != HAL_OK)
76 GPIO_InitTypeDef GPIO_InitStruct = {0};
77 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
78 if(spiHandle->Instance==SPI4)
86 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SPI4;
87 PeriphClkInitStruct.Spi45ClockSelection = RCC_SPI45CLKSOURCE_D2PCLK1;
88 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
94 __HAL_RCC_SPI4_CLK_ENABLE();
96 __HAL_RCC_GPIOE_CLK_ENABLE();
101 GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_14;
102 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
103 GPIO_InitStruct.Pull = GPIO_NOPULL;
104 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
105 GPIO_InitStruct.Alternate = GPIO_AF5_SPI4;
106 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);