在stm32f4xx

时间:2018-08-27 06:21:13

标签: random stm32 stm32f4discovery stm32f4

我想编写简单的代码以使用stm32f4xx发现板中的内置硬件生成随机数。我在下面编写了代码,但是没有用。它停留在内部while循环中,并且该标志永远不会设置为跳出循环。

#include <stm32f4xx.h>
#include <stm32f4xx_rng.h>
#include <stm32f4xx_rcc.h>

void RNG_Config(void)
{
    /* Enable RNG clock source */
    RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_RNG, ENABLE);

    /* RNG Peripheral enable */
    RNG_Cmd(ENABLE);
}

int main(void)
{

    uint32_t temp = 0;
    RNG_Config();

    while(1)
    {
        while (RNG_GetFlagStatus(RNG_FLAG_DRDY) == RESET);

        temp = RNG_GetRandomNumber();
    }
}

2 个答案:

答案 0 :(得分:0)

我自己已经通过在主要功能的开头添加SystemInit()解决了这个问题。

答案 1 :(得分:0)

只需在以下位置学习 STMicroelectronics 示例 STM32CubeH7-master\Projects\NUCLEO-H743ZI\Examples\RNG\RNG_MultiRNG

代码可以从github下载。谷歌搜索STM32CubeH7-master和github