STM32L4xx_HAL_Driver  1.14.0
stm32l4xx_ll_iwdg.h
Go to the documentation of this file.
1 
20 /* Define to prevent recursive inclusion -------------------------------------*/
21 #ifndef STM32L4xx_LL_IWDG_H
22 #define STM32L4xx_LL_IWDG_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* Includes ------------------------------------------------------------------*/
29 #include "stm32l4xx.h"
30 
35 #if defined(IWDG)
36 
41 /* Private types -------------------------------------------------------------*/
42 /* Private variables ---------------------------------------------------------*/
43 
44 /* Private constants ---------------------------------------------------------*/
48 #define LL_IWDG_KEY_RELOAD 0x0000AAAAU
49 #define LL_IWDG_KEY_ENABLE 0x0000CCCCU
50 #define LL_IWDG_KEY_WR_ACCESS_ENABLE 0x00005555U
51 #define LL_IWDG_KEY_WR_ACCESS_DISABLE 0x00000000U
56 /* Private macros ------------------------------------------------------------*/
57 
58 /* Exported types ------------------------------------------------------------*/
59 /* Exported constants --------------------------------------------------------*/
68 #define LL_IWDG_SR_PVU IWDG_SR_PVU
69 #define LL_IWDG_SR_RVU IWDG_SR_RVU
70 #define LL_IWDG_SR_WVU IWDG_SR_WVU
78 #define LL_IWDG_PRESCALER_4 0x00000000U
79 #define LL_IWDG_PRESCALER_8 (IWDG_PR_PR_0)
80 #define LL_IWDG_PRESCALER_16 (IWDG_PR_PR_1)
81 #define LL_IWDG_PRESCALER_32 (IWDG_PR_PR_1 | IWDG_PR_PR_0)
82 #define LL_IWDG_PRESCALER_64 (IWDG_PR_PR_2)
83 #define LL_IWDG_PRESCALER_128 (IWDG_PR_PR_2 | IWDG_PR_PR_0)
84 #define LL_IWDG_PRESCALER_256 (IWDG_PR_PR_2 | IWDG_PR_PR_1)
93 /* Exported macro ------------------------------------------------------------*/
94 
109 #define LL_IWDG_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
110 
117 #define LL_IWDG_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
118 
127 /* Exported functions --------------------------------------------------------*/
142 __STATIC_INLINE void LL_IWDG_Enable(IWDG_TypeDef *IWDGx)
143 {
144  WRITE_REG(IWDGx->KR, LL_IWDG_KEY_ENABLE);
145 }
146 
153 __STATIC_INLINE void LL_IWDG_ReloadCounter(IWDG_TypeDef *IWDGx)
154 {
155  WRITE_REG(IWDGx->KR, LL_IWDG_KEY_RELOAD);
156 }
157 
164 __STATIC_INLINE void LL_IWDG_EnableWriteAccess(IWDG_TypeDef *IWDGx)
165 {
166  WRITE_REG(IWDGx->KR, LL_IWDG_KEY_WR_ACCESS_ENABLE);
167 }
168 
175 __STATIC_INLINE void LL_IWDG_DisableWriteAccess(IWDG_TypeDef *IWDGx)
176 {
177  WRITE_REG(IWDGx->KR, LL_IWDG_KEY_WR_ACCESS_DISABLE);
178 }
179 
194 __STATIC_INLINE void LL_IWDG_SetPrescaler(IWDG_TypeDef *IWDGx, uint32_t Prescaler)
195 {
196  WRITE_REG(IWDGx->PR, IWDG_PR_PR & Prescaler);
197 }
198 
212 __STATIC_INLINE uint32_t LL_IWDG_GetPrescaler(IWDG_TypeDef *IWDGx)
213 {
214  return (READ_REG(IWDGx->PR));
215 }
216 
224 __STATIC_INLINE void LL_IWDG_SetReloadCounter(IWDG_TypeDef *IWDGx, uint32_t Counter)
225 {
226  WRITE_REG(IWDGx->RLR, IWDG_RLR_RL & Counter);
227 }
228 
235 __STATIC_INLINE uint32_t LL_IWDG_GetReloadCounter(IWDG_TypeDef *IWDGx)
236 {
237  return (READ_REG(IWDGx->RLR));
238 }
239 
247 __STATIC_INLINE void LL_IWDG_SetWindow(IWDG_TypeDef *IWDGx, uint32_t Window)
248 {
249  WRITE_REG(IWDGx->WINR, IWDG_WINR_WIN & Window);
250 }
251 
258 __STATIC_INLINE uint32_t LL_IWDG_GetWindow(IWDG_TypeDef *IWDGx)
259 {
260  return (READ_REG(IWDGx->WINR));
261 }
262 
277 __STATIC_INLINE uint32_t LL_IWDG_IsActiveFlag_PVU(IWDG_TypeDef *IWDGx)
278 {
279  return ((READ_BIT(IWDGx->SR, IWDG_SR_PVU) == (IWDG_SR_PVU)) ? 1UL : 0UL);
280 }
281 
288 __STATIC_INLINE uint32_t LL_IWDG_IsActiveFlag_RVU(IWDG_TypeDef *IWDGx)
289 {
290  return ((READ_BIT(IWDGx->SR, IWDG_SR_RVU) == (IWDG_SR_RVU)) ? 1UL : 0UL);
291 }
292 
299 __STATIC_INLINE uint32_t LL_IWDG_IsActiveFlag_WVU(IWDG_TypeDef *IWDGx)
300 {
301  return ((READ_BIT(IWDGx->SR, IWDG_SR_WVU) == (IWDG_SR_WVU)) ? 1UL : 0UL);
302 }
303 
312 __STATIC_INLINE uint32_t LL_IWDG_IsReady(IWDG_TypeDef *IWDGx)
313 {
314  return ((READ_BIT(IWDGx->SR, IWDG_SR_PVU | IWDG_SR_RVU | IWDG_SR_WVU) == 0U) ? 1UL : 0UL);
315 }
316 
330 #endif /* IWDG */
331 
336 #ifdef __cplusplus
337 }
338 #endif
339 
340 #endif /* STM32L4xx_LL_IWDG_H */
341 
342 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
__STATIC_INLINE uint32_t LL_IWDG_GetWindow(IWDG_TypeDef *IWDGx)
Get the high limit of the window value specified. WINR WIN LL_IWDG_GetWindow.
__STATIC_INLINE void LL_IWDG_DisableWriteAccess(IWDG_TypeDef *IWDGx)
Disable write access to IWDG_PR, IWDG_RLR and IWDG_WINR registers KR KEY LL_IWDG_DisableWriteAccess...
__STATIC_INLINE void LL_IWDG_EnableWriteAccess(IWDG_TypeDef *IWDGx)
Enable write access to IWDG_PR, IWDG_RLR and IWDG_WINR registers KR KEY LL_IWDG_EnableWriteAccess.
__STATIC_INLINE uint32_t LL_IWDG_IsActiveFlag_RVU(IWDG_TypeDef *IWDGx)
Check if flag Reload Value Update is set or not SR RVU LL_IWDG_IsActiveFlag_RVU. ...
__STATIC_INLINE uint32_t LL_IWDG_IsActiveFlag_WVU(IWDG_TypeDef *IWDGx)
Check if flag Window Value Update is set or not SR WVU LL_IWDG_IsActiveFlag_WVU. ...
__STATIC_INLINE void LL_IWDG_SetReloadCounter(IWDG_TypeDef *IWDGx, uint32_t Counter)
Specify the IWDG down-counter reload value RLR RL LL_IWDG_SetReloadCounter.
__STATIC_INLINE void LL_IWDG_Enable(IWDG_TypeDef *IWDGx)
Start the Independent Watchdog.
__STATIC_INLINE uint32_t LL_IWDG_IsReady(IWDG_TypeDef *IWDGx)
Check if all flags Prescaler, Reload & Window Value Update are reset or not SR PVU LL_IWDG_IsReady ...
__STATIC_INLINE void LL_IWDG_SetPrescaler(IWDG_TypeDef *IWDGx, uint32_t Prescaler)
Select the prescaler of the IWDG PR PR LL_IWDG_SetPrescaler.
__STATIC_INLINE uint32_t LL_IWDG_GetReloadCounter(IWDG_TypeDef *IWDGx)
Get the specified IWDG down-counter reload value RLR RL LL_IWDG_GetReloadCounter.
__STATIC_INLINE void LL_IWDG_SetWindow(IWDG_TypeDef *IWDGx, uint32_t Window)
Specify high limit of the window value to be compared to the down-counter. WINR WIN LL_IWDG_SetWindo...
__STATIC_INLINE uint32_t LL_IWDG_IsActiveFlag_PVU(IWDG_TypeDef *IWDGx)
Check if flag Prescaler Value Update is set or not SR PVU LL_IWDG_IsActiveFlag_PVU.
__STATIC_INLINE uint32_t LL_IWDG_GetPrescaler(IWDG_TypeDef *IWDGx)
Get the selected prescaler of the IWDG PR PR LL_IWDG_GetPrescaler.
__STATIC_INLINE void LL_IWDG_ReloadCounter(IWDG_TypeDef *IWDGx)
Reloads IWDG counter with value defined in the reload register KR KEY LL_IWDG_ReloadCounter.