# Release Notes for STM32L1xx Standard Peripherals Library Drivers

Copyright © 2014 STMicroelectronics

## Update history

### V1.3.0 / 31-January-2014

Main Changes

- Add support for STM32L1xx XL-density devices "Ultra Low Power XL-density devices: STM32L151xExx, STM32L152xExx and STM32L162xExx"

- stm32l1xx_flash.h: extend Data memory range to 0x3FFF (16KB) and Program memory range to 0x7FFFF (512KB)

- stm32l1xx_flash.c & stm32l1xx_flash_ramfunc.c: add reference to STM32L1XX_XL devices

- stm32l1xx_gpio.c

- GPIO_Init(): use temporary variable when modifying the registers, to avoid unexpected transition in the GPIO pin configuration

- stm32l1xx_tim.c/.h

- TIM_EncoderInterfaceConfig(): updated to support TIM9, only for STM32L1XX_MDP, STM32L1XX_HD and STM32L1XX_XL devices

- stm32l1xx_opamp.c

- OPAMP_OffsetTrimmingModeSelect(): updated to write into OTR register instead of CSR

- stm32l1xx_rcc.h

- IS_RCC_FLAG() macro: delete duplicated RCC_FLAG_WWDGRST and add RCC_FLAG_OBLRST

- stm32l1xx_rtc.c

- RTC_GetSubSecond(): update function header comment

- stm32l1xx_rtc.h

- IS_RTC_GET_FLAG() macro: add test on RTC_FLAG_INITS

- stm32l1xx_lcd.c

- LCD_WaitForSynchro(): add timeout for polling on FCRSF flag

### V1.2.0 / 22-February-2013

Main Changes

- stm32l1xx_flash.c/.h: add functions to manage the Proprietary code Read Out Protection (PcROP) feature (available only in STM32L1XX_MDP devices):

- FLASH_Status FLASH_OB_PCROPConfig(uint32_t OB_WRP, FunctionalState NewState);
- FLASH_Status FLASH_OB_PCROP1Config(uint32_t OB_WRP1, FunctionalState NewState);
- FLASH_Status FLASH_OB_PCROPSelectionConfig(uint16_t OB_PCROP);
- FlagStatus FLASH_OB_GetSPRMOD(void);
- Add new define FLASH_FLAG_RDERR for Read protected error flag
- For more details on how to activate this feature, please refer to the procedure provided in stm32l1xx_flash.c file starting from line 971.

- stm32l1xx_exti.c

- EXTI_GetITStatus() updated to remove test on IMR register to avoid corner case limitation

### V1.1.1 / 05-March-2012

Main Changes

- All source files: license disclaimer text update and add link to the License file on ST Internet.

### V1.1.0 / 24-January-2012

Main Changes

- Official version for STM32L1xx High-density and Medium-density Plus devices.
- Add new drivers for new peripherals on STM32L1xx High-density and Medium-density Plus devices:

- stm32l1xx_aes.h/.c
- stm32l1xx_fsmc.h/.c
- stm32l1xx_opamp.h/.c
- stm32l1xx_sdio.h/.c

- stm32l1xx_adc.h/.c

- Add new channel for ADC Bank B
- Add new function to select between Bank A and Bank B: void ADC_BankSelection(ADC_TypeDef* ADCx, uint8_t ADC_BankSelection);
- Update ADC_InjectedChannelConfig() and ADC_RegularChannelConfig() to support new ADC channels.

- stm32l1xx_comp.h/.c

- Add new function: void COMP_SW1SwitchConfig(FunctionalState NewState);

- stm32l1xx_dbgmcu.h/.c

- Add new parameter for TIM5

- stm32l1xx_dma.h/.c

- Add DMA2 support

- stm32l1xx_exti.h/.c

- Add new EXTI Line 23 connected to TS channel acquisition event

- stm32l1xx_flash.h/.c

- Add new pages definitions for Write protection
- Add new flag FLASH_FLAG_OPTVERRUSR
- Add new functions: FLASH_OB_WRP1Config(), FLASH_OB_WRP2Config(), FLASH_OB_BootConfig(), FLASH_OB_GetWRP1(), FLASH_OB_GetWRP2(), FLASH_EraseParallelPage() and FLASH_ProgramParallelHalfPage().
- Update functions to avoid STM32L1XX_MD workaround on Data EEPROM (FAST) halfword/byte erase: DATA_EEPROM_FastProgramByte(), DATA_EEPROM_FastProgramHalfWord(), DATA_EEPROM_ProgramByte() and DATA_EEPROM_ProgramHalfWord().

- stm32l1xx_flash_ramfunc.c

- Add new functions: FLASH_EraseParallelPage() and FLASH_ProgramParallelHalfPage().
- Update FLASH_ProgramHalfPage(), FLASH_ProgramParallelHalfPage(), DATA_EEPROM_EraseDoubleWord() and DATA_EEPROM_ProgramDoubleWord() functions.

- stm32l1xx_gpio.h/.c

- Add new GPIO port definition.
- Add new alternate functions for new peripherals.

- stm32l1xx_i2c.h/.c

- Add new function: void I2C_NACKPositionConfig(I2C_TypeDef* I2Cx, uint16_t I2C_NACKPosition)

- stm32l1xx_rcc.h/.c

- Add new interrupt for RCC_IT_LSECSS
- Add new definitions for new peripherals
- Add new function: RCC_LSEClockSecuritySystemCmd()

- stm32l1xx_rtc.h/.c

- SYNCH_PREDIV max value changed to 0x7FFF
- Add new definitions for RTC Alarm Sub Second "RTC_Alarm_Sub_Seconds_Masks" and Alarm Sub Second max value (0x7FFF)
- Add new definitions for: RTC_Calib_Output_selection, RTC_Smooth_calib_period, RTC_Smooth_calib_Plus_pulses, RTC_Smooth_calib_Minus_pulses.
- Add new definitions: RTC_TamperTrigger_LowLevel and RTC_TamperTrigger_HighLevel.
- Add new definitions for RTC_Tamper_Filter, RTC_Tamper_Sampling_Frequencies, RTC_Tamper_Pin_Precharge_Duration, RTC_Tamper_2 and RTC_Tamper_3.
- Add new RTC_Add_1_Second_Parameter and RTC_Substract_Fraction_Of_Second_Value defintions.
- Add new Backup registers definitions from RTC_BKP_DR20 to RTC_BKP_DR31.
- Add new flags: RTC_FLAG_RECALPF, RTC_FLAG_TAMP3F and RTC_FLAG_TAMP2F
- Add new interrupts definitions RTC_IT_TAMP2 and RTC_IT_TAMP3
- Add new functions: RTC_BypassShadowCmd(), RTC_GetSubSecond(), RTC_AlarmSubSecondConfig(), RTC_GetAlarmSubSecond(), RTC_CalibOutputConfig(), RTC_SmoothCalibConfig(), RTC_GetTimeStampSubSecond(), RTC_TamperFilterConfig(), RTC_TamperSamplingFreqConfig(), RTC_TamperPinsPrechargeDuration(), RTC_TimeStampOnTamperDetectionCmd(), RTC_TamperPullUpCmd(), RTC_SynchroShiftConfig().

- stm32l1xx_spi.h/.c

- Add support for I2S
- Add new structure "I2S_InitTypeDef"
- Add new parameter: I2S_Mode, I2S_Standard, I2S_Data_Format, I2S_MCLK_Output, I2S_Audio_Frequency and I2S_Clock_Polarity.
- Add 2 interrupts: I2S_IT_UDR and SPI_I2S_IT_FRE
- Add new flags: I2S_FLAG_CHSIDE, I2S_FLAG_UDR and SPI_I2S_FLAG_FRE
- Add new functions: I2S_Init(), I2S_StructInit() and I2S_Cmd()

- stm32l1xx_syscfg.h/.c

- Add support for new port: EXTI_PortSourceGPIOF and EXTI_PortSourceGPIOG
- Add new remap for FSMC: SYSCFG_MemoryRemap_FSMC
- Add new RI Channels and new RI IOSwitch
- Add new functions: SYSCFG_GetBootMode() and SYSCFG_RIChannelSpeedConfig()

- stm32l1xx_tim.h/.c

- Update to support TIM 32-bit
- Change TIM_Period and TIM_Pulse to be declared as 32-bit
- Remove the "TIM_DMABase_RCR": the RCR register is not present on STM32L1xx family.
- Add new parameter: TIM_DMABase_OR
- Change "TIM_DMABurstLength_1Byte" to "TIM_DMABurstLength_1Transfer"
- Add new TIM_Remap: TIM2_TIM10_OC, TIM2_TIM5_TRGO, TIM3_TIM11_OC, TIM3_TIM5_TRGO, TIM10_ETR_LSE, TIM10_ETR_TIM9_TRGO, TIM11_ETR_LSE and TIM11_ETR_TIM9_TRGO.
- Update TIM_RemapConfig() function coding.
- Update all functions header comments to support TIM5.

- stm32l1xx_usart.h/.c

- Update to support UART4 and UART5
- Update all functions header comment

### V1.0.0 / 31-December-2010

Main Changes

- Created

## License

Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); You may not use this package except in compliance with the License. You may obtain a copy of the License at:

http://www.st.com/software_license_agreement_liberty_v2
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

For complete documentation on STM32 Microcontrollers visit www.st.com/STM32