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.