STM32Cube  Version 2.0
Create Projects for STM32L5 Series with STM32Cube HAL and STM32CubeMX
 All Files Functions Variables Macros Pages
CMSIS-Driver SPI Setup

The CMSIS-Driver SPI requires:

  • Setup of SPIx input clock
  • Setup of SPIx in Full-Duplex Master/Slave mode with optional DMA for Rx and Tx transfers

Valid settings for various evaluation boards are listed in the table below:

Peripheral Resource STM32L562E-DK
SPI Peripheral SPI 1
SPI Mode Full-Duplex Master
MOSI Pin PB5
MISO Pin PB4
SCK Pin PG9

For different boards, refer to the hardware schematics to reflect correct setup values.

The STM32CubeMX configuration for STM32L562E-DK with steps for Pinout, Clock, and System Configuration are listed below. Enter the values that are marked bold.

Pinout tab

  1. Configure SPI3 mode
    • Peripherals SPI3: Mode=Full-Duplex Master, Hardware NSS Signal=OFF

Clock Configuration tab

  1. Configure SPI1 Clock.

Configuration tab

  1. Under Connectivity open SPI1 Configuration:

    • optional DMA Settings: setup DMA transfers for Rx and Tx
      Add - Select SPI1_RX: Stream=DMA1 Channel 1, Direction=Peripheral to Memory, Priority=Low, DMA Request Settings: not used
      Add - Select SPI1_TX: Stream=DMA1 Channel 2, Direction=Memory to Peripheral, Priority=Low, DMA Request Settings: not used
    • GPIO Settings: review settings, no changes required
      Pin Name Signal on Pin GPIO mode GPIO Pull-up/Pull..Maximum out User Label
      PG9 SPI1_SCK Alternate No pull-up and no..High .
      PB4 SPI1_MISO Alternate No pull-up and no..High .
      PB5 SPI1_MOSI Alternate No pull-up and no..High .
    • NVIC Settings: enable interrupts
      Interrupt Table Enable Preemption Priority Sub Priority
      DMA1 channel 1 global interrupt ON 0 0
      DMA1 channel 2 global interrupt ON 0 0
      SPI1 global interrupt ON 0 0
    • Parameter Settings: not used
    • User Constants: not used

    Click OK to close the SPI3 Configuration dialog

  2. Open Project - Settings - Advanced Settings from the menu and enable "Not Generate Function call" for MX_SPI3_Init