CARME-M4 BSP  V1.5
Interrupts and flags management functions

Interrupts and flags management functions. More...

+ Collaboration diagram for Interrupts and flags management functions:

Functions

void RNG_ITConfig (FunctionalState NewState)
 Enables or disables the RNG interrupt. More...
 
FlagStatus RNG_GetFlagStatus (uint8_t RNG_FLAG)
 Checks whether the specified RNG flag is set or not. More...
 
void RNG_ClearFlag (uint8_t RNG_FLAG)
 Clears the RNG flags. More...
 
ITStatus RNG_GetITStatus (uint8_t RNG_IT)
 Checks whether the specified RNG interrupt has occurred or not. More...
 
void RNG_ClearITPendingBit (uint8_t RNG_IT)
 Clears the RNG interrupt pending bit(s). More...
 

Detailed Description

Interrupts and flags management functions.

 ===============================================================================
             ##### Interrupts and flags management functions #####
 ===============================================================================  

 [..] This section provides functions allowing to configure the RNG Interrupts and 
      to get the status and clear flags and Interrupts pending bits.
  
 [..] The RNG provides 3 Interrupts sources and 3 Flags:
  
 *** Flags : ***
 ===============
 [..] 
    (#) RNG_FLAG_DRDY :  In the case of the RNG_DR register contains valid 
        random data. it is cleared by reading the valid data(using 
        RNG_GetRandomNumber() function).

    (#) RNG_FLAG_CECS : In the case of a seed error detection. 
      
    (#) RNG_FLAG_SECS : In the case of a clock error detection.
              
 *** Interrupts ***
 ==================
 [..] If enabled, an RNG interrupt is pending :
    
   (#) In the case of the RNG_DR register contains valid random data. 
       This interrupt source is cleared once the RNG_DR register has been read 
       (using RNG_GetRandomNumber() function) until a new valid value is 
       computed; or 
   (#) In the case of a seed error : One of the following faulty sequences has 
       been detected:
       (++) More than 64 consecutive bits at the same value (0 or 1)
       (++) More than 32 consecutive alternance of 0 and 1 (0101010101...01)
       This interrupt source is cleared using RNG_ClearITPendingBit(RNG_IT_SEI)
       function; or
   (#) In the case of a clock error : the PLL48CLK (RNG peripheral clock source) 
       was not correctly detected (fPLL48CLK< fHCLK/16). This interrupt source is
       cleared using RNG_ClearITPendingBit(RNG_IT_CEI) function.
       -@- note In this case, User have to check that the clock controller is 
           correctly configured to provide the RNG clock. 

 *** Managing the RNG controller events : ***
 ============================================
 [..] The user should identify which mode will be used in his application to manage 
      the RNG controller events: Polling mode or Interrupt mode.
  
   (#) In the Polling Mode it is advised to use the following functions:
       (++) RNG_GetFlagStatus() : to check if flags events occur. 
       (++) RNG_ClearFlag()     : to clear the flags events.
  
       -@@- RNG_FLAG_DRDY can not be cleared by RNG_ClearFlag(). it is cleared only 
            by reading the Random number data.      
  
   (#)  In the Interrupt Mode it is advised to use the following functions:
        (++) RNG_ITConfig()       : to enable or disable the interrupt source.
        (++) RNG_GetITStatus()    : to check if Interrupt occurs.
        (++) RNG_ClearITPendingBit() : to clear the Interrupt pending Bit 
             (corresponding Flag). 

Function Documentation

void RNG_ClearFlag ( uint8_t  RNG_FLAG)

Clears the RNG flags.

Parameters
RNG_FLAGspecifies the flag to clear. This parameter can be any combination of the following values:
  • RNG_FLAG_CECS: Clock Error Current flag.
  • RNG_FLAG_SECS: Seed Error Current flag.
Note
RNG_FLAG_DRDY can not be cleared by RNG_ClearFlag() function. This flag is cleared only by reading the Random number data (using RNG_GetRandomNumber() function).
Return values
None

Definition at line 326 of file stm32f4xx_rng.c.

void RNG_ClearITPendingBit ( uint8_t  RNG_IT)

Clears the RNG interrupt pending bit(s).

Parameters
RNG_ITspecifies the RNG interrupt pending bit(s) to clear. This parameter can be any combination of the following values:
  • RNG_IT_CEI: Clock Error Interrupt.
  • RNG_IT_SEI: Seed Error Interrupt.
Return values
None

Definition at line 372 of file stm32f4xx_rng.c.

FlagStatus RNG_GetFlagStatus ( uint8_t  RNG_FLAG)

Checks whether the specified RNG flag is set or not.

Parameters
RNG_FLAGspecifies the RNG flag to check. This parameter can be one of the following values:
  • RNG_FLAG_DRDY: Data Ready flag.
  • RNG_FLAG_CECS: Clock Error Current flag.
  • RNG_FLAG_SECS: Seed Error Current flag.
Return values
Thenew state of RNG_FLAG (SET or RESET).

Definition at line 293 of file stm32f4xx_rng.c.

ITStatus RNG_GetITStatus ( uint8_t  RNG_IT)

Checks whether the specified RNG interrupt has occurred or not.

Parameters
RNG_ITspecifies the RNG interrupt source to check. This parameter can be one of the following values:
  • RNG_IT_CEI: Clock Error Interrupt.
  • RNG_IT_SEI: Seed Error Interrupt.
Return values
Thenew state of RNG_IT (SET or RESET).

Definition at line 342 of file stm32f4xx_rng.c.

void RNG_ITConfig ( FunctionalState  NewState)

Enables or disables the RNG interrupt.

Note
The RNG provides 3 interrupt sources,
  • Computed data is ready event (DRDY), and
  • Seed error Interrupt (SEI) and
  • Clock error Interrupt (CEI), all these interrupts sources are enabled by setting the IE bit in CR register. However, each interrupt have its specific status bit (see RNG_GetITStatus() function) and clear bit except the DRDY event (see RNG_ClearITPendingBit() function).
Parameters
NewStatenew state of the RNG interrupt. This parameter can be: ENABLE or DISABLE.
Return values
None

Definition at line 267 of file stm32f4xx_rng.c.