随机数程序

#include "rng.h"
#include "delay.h"

u8 RNG_Init(void)
{
    u16 retry=0; 
    RCC->AHB2ENR=1<<6;    //开启RNG时钟,来自PLL48CLK
    RNG->CR|=1<<2;        //使能RNG
    while((RNG->SR&0X01)==0&&retry<10000)    //等待随机数就绪
    {
        retry++;
        delay_us(100);
    }
    if(retry>=10000)return 1;//随机数产生器工作不正常
    return 0;
}
//得到随机数
//返回值:获取到的随机数
u32 RNG_Get_RandomNum(void)
{     
    while((RNG->SR&0X01)==0);    //等待随机数就绪  
    return RNG->DR;    
}
//得到某个范围内的随机数
//min,max,最小,最大值.
//返回值:得到的随机数(rval),满足:min<=rval<=max
int RNG_Get_RandomRange(int min,int max)

   return RNG_Get_RandomNum()%(max-min+1)+min;
}


 

你可能感兴趣的:(单片机,嵌入式硬件)