13 RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_RNG, ENABLE);
14 RCC_AHB2PeriphResetCmd(RCC_AHB2Periph_RNG, ENABLE);
15 RCC_AHB2PeriphResetCmd(RCC_AHB2Periph_RNG, DISABLE);
17 RNG->CR |= RNG_CR_RNGEN;
24 RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_RNG, DISABLE);
29 status_e random_get_nowait(uint32_t *data)
32 static uint32_t last = 0;
34 uint32_t sr = RNG->SR;
39 if (sr & (RNG_SR_SECS | RNG_SR_CECS))
44 if (!sr & RNG_SR_DRDY)
66 status_e random_get(uint32_t *data, uint32_t timeout_ms)
74 status_e status = random_get_nowait(data);
This file contains all the functions prototypes for the RCC firmware library.
CMSIS Cortex-M4 Device Peripheral Access Layer Header File. This file contains all the peripheral reg...
static uint32_t time_elapsed(timeout_t timeout)
Is this time passed?
Function called at bad time.
status_e random_suspend(void)
Disable the HW random number generator.
You should check your solder/cables.
status_e random_init(void)
Initialize the HW random number generator.
timeout_t time_set_timeout_ms(uint32_t ms)
Set an obscure time at least ms milliseconds in the future.
Random number generation.