Configuration functions.
More...
Configuration functions.
===============================================================================
##### Configuration functions #####
===============================================================================
◆ HAL_EXTI_ClearConfigLine()
Clear whole configuration of a dedicated Exti line.
- Parameters
-
- Return values
-
Definition at line 372 of file stm32l4xx_hal_exti.c.
374 __IO uint32_t *regaddr;
390 offset = ((hexti->
Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT);
391 linepos = (hexti->
Line & EXTI_PIN_MASK);
392 maskline = (1uL << linepos);
395 regaddr = (&EXTI->IMR1 + (EXTI_MODE_OFFSET * offset));
396 regval = (*regaddr & ~maskline);
400 regaddr = (&EXTI->EMR1 + (EXTI_MODE_OFFSET * offset));
401 regval = (*regaddr & ~maskline);
405 if ((hexti->
Line & EXTI_CONFIG) != 0x00u)
407 regaddr = (&EXTI->RTSR1 + (EXTI_CONFIG_OFFSET * offset));
408 regval = (*regaddr & ~maskline);
411 regaddr = (&EXTI->FTSR1 + (EXTI_CONFIG_OFFSET * offset));
412 regval = (*regaddr & ~maskline);
416 if ((hexti->
Line & EXTI_GPIO) == EXTI_GPIO)
420 regval = SYSCFG->EXTICR[linepos >> 2u];
421 regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
422 SYSCFG->EXTICR[linepos >> 2u] = regval;
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
◆ HAL_EXTI_GetConfigLine()
Get configuration of a dedicated Exti line.
- Parameters
-
| hexti | Exti handle. |
| pExtiConfig | Pointer on structure to store Exti configuration. |
- Return values
-
Definition at line 269 of file stm32l4xx_hal_exti.c.
271 __IO uint32_t *regaddr;
278 if ((hexti == NULL) || (pExtiConfig == NULL))
290 offset = ((pExtiConfig->
Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT);
291 linepos = (pExtiConfig->
Line & EXTI_PIN_MASK);
292 maskline = (1uL << linepos);
295 regaddr = (&EXTI->IMR1 + (EXTI_MODE_OFFSET * offset));
299 if ((regval & maskline) != 0x00u)
301 pExtiConfig->
Mode = EXTI_MODE_INTERRUPT;
305 pExtiConfig->
Mode = EXTI_MODE_NONE;
309 regaddr = (&EXTI->EMR1 + (EXTI_MODE_OFFSET * offset));
313 if ((regval & maskline) != 0x00u)
315 pExtiConfig->
Mode |= EXTI_MODE_EVENT;
319 if ((pExtiConfig->
Line & EXTI_CONFIG) != 0x00u)
321 regaddr = (&EXTI->RTSR1 + (EXTI_CONFIG_OFFSET * offset));
325 if ((regval & maskline) != 0x00u)
327 pExtiConfig->
Trigger = EXTI_TRIGGER_RISING;
331 pExtiConfig->
Trigger = EXTI_TRIGGER_NONE;
335 regaddr = (&EXTI->FTSR1 + (EXTI_CONFIG_OFFSET * offset));
339 if ((regval & maskline) != 0x00u)
341 pExtiConfig->
Trigger |= EXTI_TRIGGER_FALLING;
345 if ((pExtiConfig->
Line & EXTI_GPIO) == EXTI_GPIO)
349 regval = SYSCFG->EXTICR[linepos >> 2u];
350 pExtiConfig->
GPIOSel = ((regval << (SYSCFG_EXTICR1_EXTI1_Pos * (3uL - (linepos & 0x03u)))) >> 24);
359 pExtiConfig->
Trigger = EXTI_TRIGGER_NONE;
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
◆ HAL_EXTI_GetHandle()
Store line number as handle private field.
- Parameters
-
| hexti | Exti handle. |
| ExtiLine | Exti line number. This parameter can be from 0 to EXTI_LINE_NB. |
- Return values
-
Definition at line 464 of file stm32l4xx_hal_exti.c.
477 hexti->
Line = ExtiLine;
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
◆ HAL_EXTI_RegisterCallback()
Register callback for a dedicated Exti line.
- Parameters
-
| hexti | Exti handle. |
| CallbackID | User callback identifier. This parameter can be one of
|
| pPendingCbfn | function pointer to be stored as callback. |
- Return values
-
Definition at line 438 of file stm32l4xx_hal_exti.c.
440 HAL_StatusTypeDef status =
HAL_OK;
void(* PendingCallback)(void)
◆ HAL_EXTI_SetConfigLine()
Set configuration of a dedicated Exti line.
- Parameters
-
| hexti | Exti handle. |
| pExtiConfig | Pointer on EXTI configuration to be set. |
- Return values
-
Definition at line 144 of file stm32l4xx_hal_exti.c.
146 __IO uint32_t *regaddr;
153 if ((hexti == NULL) || (pExtiConfig == NULL))
166 offset = ((pExtiConfig->
Line & EXTI_REG_MASK) >> EXTI_REG_SHIFT);
167 linepos = (pExtiConfig->
Line & EXTI_PIN_MASK);
168 maskline = (1uL << linepos);
171 if ((pExtiConfig->
Line & EXTI_CONFIG) != 0x00u)
176 regaddr = (&EXTI->RTSR1 + (EXTI_CONFIG_OFFSET * offset));
180 if ((pExtiConfig->
Trigger & EXTI_TRIGGER_RISING) != 0x00u)
193 regaddr = (&EXTI->FTSR1 + (EXTI_CONFIG_OFFSET * offset));
197 if ((pExtiConfig->
Trigger & EXTI_TRIGGER_FALLING) != 0x00u)
210 if ((pExtiConfig->
Line & EXTI_GPIO) == EXTI_GPIO)
215 regval = SYSCFG->EXTICR[linepos >> 2u];
216 regval &= ~(SYSCFG_EXTICR1_EXTI0 << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
217 regval |= (pExtiConfig->
GPIOSel << (SYSCFG_EXTICR1_EXTI1_Pos * (linepos & 0x03u)));
218 SYSCFG->EXTICR[linepos >> 2u] = regval;
223 regaddr = (&EXTI->IMR1 + (EXTI_MODE_OFFSET * offset));
227 if ((pExtiConfig->
Mode & EXTI_MODE_INTERRUPT) != 0x00u)
240 assert_param(((pExtiConfig->
Line & EXTI_EVENT) == EXTI_EVENT) || ((pExtiConfig->
Mode & EXTI_MODE_EVENT) != EXTI_MODE_EVENT));
243 regaddr = (&EXTI->EMR1 + (EXTI_MODE_OFFSET * offset));
247 if ((pExtiConfig->
Mode & EXTI_MODE_EVENT) != 0x00u)
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))