This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Missing CMSIS DriverSPI 2.01

I have a keil V5.18 with latest pack for STM32L051 (STM32L0xx_DFP 1.5.0), the CMSIS version is 4.5.0.

The goal is to use SPI send out information. I find some source code in CMSIS wiki, and initialize SPI port as:

extern ARM_DRIVER_SPI Driver_SPI0;
static ARM_DRIVER_SPI *drv = &Driver_SPI0;

And when I compile it, it gives complain:

.\Objects\spi.axf: Error: L6218E: Undefined symbol Driver_SPI0 (referred from thread_spi.o).

Then I dig into the source code and find another implementation:

extern ARM_DRIVER_SPI CREATE_SYMBOL(Driver_SPI, DRV_SPI);
static ARM_DRIVER_SPI *drv = &CREATE_SYMBOL(Driver_SPI, DRV_SPI);

The same complain information.

Guessing its a driver missing, I try to install SPI driver in Run-time environment window. In STM32F1 serials pack, the SPI driver is available but not in STM32L0xx serial.

Then I check CMSIS Driver -> Flash(API) -> AT45DB642D (AT45DB642D Flash, SPI), assuming that this package will help me solve the SPI driver problem, the configure window complain:

require 2.01:CMSIS Driver:SPI   Install missing component

Same time I found this doccument: http://www.keil.com/appnotes/files/apnt_266.pdf

Far I think its the company haven't provide driver package for STM32L0xx serial that support SPI.

Am I correct? Or did I miss anything? Awaiting for reply!

  • Yes, there is no CMSIS driver for STM32L series, but looking into this device it has same SPI peripheral as for examples STM32F2 series, so you can take SPI driver from F200 series and correct part depending on clocking and setting pins.