Skip to content

Commit 6987c15

Browse files
committed
Update to support STM32L1xx
Signed-off-by: Frederic.Pillon <frederic.pillon@st.com>
1 parent b61f787 commit 6987c15

File tree

4 files changed

+20
-12
lines changed

4 files changed

+20
-12
lines changed

cores/arduino/stm32/analog.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -737,7 +737,7 @@ void pwm_start(PinName pin, uint32_t clock_freq,
737737
timHandle.Init.Period = period -1;
738738
timHandle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
739739
timHandle.Init.CounterMode = TIM_COUNTERMODE_UP;
740-
#ifndef STM32L0xx
740+
#if !defined(STM32L0xx) && !defined(STM32L1xx)
741741
timHandle.Init.RepetitionCounter = 0;
742742
#endif
743743
timHandle.State= HAL_TIM_STATE_RESET;
@@ -758,7 +758,7 @@ void pwm_start(PinName pin, uint32_t clock_freq,
758758
timConfig.OCMode = TIM_OCMODE_PWM1;
759759
timConfig.OCPolarity = TIM_OCPOLARITY_HIGH;
760760
timConfig.OCFastMode = TIM_OCFAST_DISABLE;
761-
#ifndef STM32L0xx
761+
#if !defined(STM32L0xx) && !defined(STM32L1xx)
762762
timConfig.OCNPolarity = TIM_OCNPOLARITY_HIGH;
763763
timConfig.OCNIdleState = TIM_OCNIDLESTATE_RESET;
764764
timConfig.OCIdleState = TIM_OCIDLESTATE_RESET;
@@ -771,7 +771,7 @@ void pwm_start(PinName pin, uint32_t clock_freq,
771771
return;
772772
}
773773

774-
#ifndef STM32L0xx
774+
#if !defined(STM32L0xx) && !defined(STM32L1xx)
775775
if(STM_PIN_INVERTED(pinmap_function(pin, PinMap_PWM))) {
776776
HAL_TIMEx_PWMN_Start(&timHandle, timChannel);
777777
} else
@@ -797,7 +797,7 @@ void pwm_stop(PinName pin)
797797
timChannel = get_pwm_channel(pin);
798798
if (!IS_TIM_CHANNELS(timChannel)) return;
799799

800-
#ifndef STM32L0xx
800+
#if !defined(STM32L0xx) && !defined(STM32L1xx)
801801
if (STM_PIN_INVERTED(pinmap_function(pin, PinMap_PWM))) {
802802
HAL_TIMEx_PWMN_Stop(&timHandle, timChannel);
803803
} else

cores/arduino/stm32/stm32_eeprom.c

+12-4
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@
6969
* @{
7070
*/
7171
// We use the last page of the flash to store data (to prevent code overwritten).
72-
#if defined (STM32F0xx) || defined (STM32F1xx)
72+
#if defined (STM32F0xx) || defined (STM32F1xx) || defined(STM32L1xx)
7373
#ifdef FLASH_BANK2_END
7474
#define FLASH_BASE_ADDRESS ((uint32_t)((FLASH_BANK2_END + 1) - FLASH_PAGE_SIZE))
7575
#else
@@ -200,7 +200,7 @@ void set_data_to_flash(void)
200200
uint32_t address = FLASH_BASE_ADDRESS;
201201
uint32_t address_end = FLASH_BASE_ADDRESS + E2END;
202202
#if defined (STM32F0xx) || defined (STM32F1xx) || defined (STM32F3xx) || \
203-
defined (STM32L0xx) || defined(STM32L4xx)
203+
defined (STM32L0xx) || defined (STM32L1xx) || defined(STM32L4xx)
204204
uint32_t pageError = 0;
205205
uint64_t data = 0;
206206

@@ -218,18 +218,26 @@ void set_data_to_flash(void)
218218
EraseInitStruct.NbPages = 1;
219219

220220
if(HAL_FLASH_Unlock() == HAL_OK) {
221-
#ifdef STM32L0xx
221+
#if defined(STM32L0xx)
222222
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP|FLASH_FLAG_WRPERR|FLASH_FLAG_PGAERR|\
223223
FLASH_FLAG_SIZERR|FLASH_FLAG_OPTVERR|FLASH_FLAG_RDERR|\
224224
FLASH_FLAG_FWWERR|FLASH_FLAG_NOTZEROERR);
225+
#elif defined(STM32L1xx)
226+
#if defined(FLASH_SR_RDERR)
227+
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP|FLASH_FLAG_WRPERR|FLASH_FLAG_PGAERR|\
228+
FLASH_FLAG_SIZERR|FLASH_FLAG_OPTVERR|FLASH_FLAG_RDERR);
229+
#else
230+
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP|FLASH_FLAG_WRPERR|FLASH_FLAG_PGAERR|\
231+
FLASH_FLAG_SIZERR|FLASH_FLAG_OPTVERR);
232+
#endif
225233
#elif defined (STM32L4xx)
226234
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS);
227235
#else
228236
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP|FLASH_FLAG_WRPERR|FLASH_FLAG_PGERR);
229237
#endif
230238
if(HAL_FLASHEx_Erase(&EraseInitStruct, &pageError) == HAL_OK) {
231239
while(address < address_end) {
232-
#ifdef STM32L0xx
240+
#if defined(STM32L0xx) || defined(STM32L1xx)
233241
memcpy(&data, tmpEE + offset, sizeof(uint32_t));
234242
if(HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, address, data) == HAL_OK) {
235243
address += 4;

cores/arduino/stm32/timer.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ void TimerHandleInit(stimer_t *obj, uint16_t period, uint16_t prescaler)
413413
handle->Init.CounterMode = TIM_COUNTERMODE_UP;
414414
handle->Init.Period = period;
415415
handle->Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
416-
#ifndef STM32L0xx
416+
#if !defined(STM32L0xx) && !defined(STM32L1xx)
417417
handle->Init.RepetitionCounter = 0x0000;
418418
#endif
419419
if(HAL_TIM_Base_Init(handle) != HAL_OK){
@@ -757,7 +757,7 @@ void TimerPulseInit(stimer_t *obj, uint16_t period, uint16_t pulseWidth, void (*
757757
handle->Init.Prescaler = (uint32_t)(getTimerClkFreq(obj->timer) / (1000000)) - 1;
758758
handle->Init.ClockDivision = 0;
759759
handle->Init.CounterMode = TIM_COUNTERMODE_UP;
760-
#ifndef STM32L0xx
760+
#if !defined(STM32L0xx) && !defined(STM32L1xx)
761761
handle->Init.RepetitionCounter = 0;
762762
#endif
763763
obj->irqHandleOC = irqHandle;
@@ -766,7 +766,7 @@ void TimerPulseInit(stimer_t *obj, uint16_t period, uint16_t pulseWidth, void (*
766766
sConfig.Pulse = pulseWidth;
767767
sConfig.OCPolarity = TIM_OCPOLARITY_HIGH;
768768
sConfig.OCFastMode = TIM_OCFAST_DISABLE;
769-
#ifndef STM32L0xx
769+
#if !defined(STM32L0xx) && !defined(STM32L1xx)
770770
sConfig.OCNPolarity = TIM_OCNPOLARITY_HIGH;
771771
sConfig.OCIdleState = TIM_OCIDLESTATE_RESET;
772772
sConfig.OCNIdleState = TIM_OCNIDLESTATE_RESET;

cores/arduino/stm32/uart.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) {
528528
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
529529
{
530530
volatile uint32_t tmpval;
531-
#if defined(STM32F1xx) || defined(STM32F2xx) || defined(STM32F4xx)
531+
#if defined(STM32F1xx) || defined(STM32F2xx) || defined(STM32F4xx) || defined(STM32L1xx)
532532
if (__HAL_UART_GET_FLAG(huart, UART_FLAG_PE) != RESET) {
533533
tmpval = huart->Instance->DR; // Clear PE flag
534534
} else if (__HAL_UART_GET_FLAG(huart, UART_FLAG_FE) != RESET) {

0 commit comments

Comments
 (0)