前言:
眼前朋友们对“c语言生成随机数0或1”大致比较关心,各位老铁们都想要知道一些“c语言生成随机数0或1”的相关内容。那么小编在网摘上搜集了一些关于“c语言生成随机数0或1””的相关内容,希望看官们能喜欢,兄弟们快快来了解一下吧!关键代码:
rng.c
//初始化RNGu8 RNG_Init(void){ u16 retry=0; RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_RNG, ENABLE);//开启RNG时钟,来自PLL48CLK RNG_Cmd(ENABLE); //使能RNG while(RNG_GetFlagStatus(RNG_FLAG_DRDY)==RESET&&retry<10000) //等待随机数就绪 { retry++; delay_us(100); } if(retry>=10000)return 1;//随机数产生器工作不正常 return 0;}//得到随机数//返回值:获取到的随机数u32 RNG_Get_RandomNum(void){ while(RNG_GetFlagStatus(RNG_FLAG_DRDY)==RESET); //等待随机数就绪 return RNG_GetRandomNumber(); }//生成[min,max]范围的随机数int RNG_Get_RandomRange(int min,int max){ return RNG_Get_RandomNum()%(max-min+1) +min;}
main.c
int main(void){ u32 random; u8 t=0,key; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2 delay_init(168); //初始化延时函数 uart_init(115200); //初始化串口波特率为115200 LED_Init(); //初始化LED KEY_Init(); //按键初始化 LCD_Init(); //初始化液晶接口 POINT_COLOR=RED; while(RNG_Init()) //初始化随机数发生器 { LCD_ShowString(30,130,200,16,16," RNG Error! "); delay_ms(200); LCD_ShowString(30,130,200,16,16,"RNG Trying..."); } LCD_ShowString(30,130,200,16,16,"RNG Ready! "); LCD_ShowString(30,150,200,16,16,"KEY0:Get Random Num"); LCD_ShowString(30,180,200,16,16,"Random Num:"); LCD_ShowString(30,210,200,16,16,"Random Num[0-9]:"); POINT_COLOR=BLUE; while(1) { delay_ms(10); key=KEY_Scan(0); if(key==KEY0_PRES) { random=RNG_Get_RandomNum(); //获得随机数 LCD_ShowNum(30+8*11,180,random,10,16); //显示随机数 } if((t%20)==0) { LED0=!LED0; //每200ms,翻转一次LED0 random=RNG_Get_RandomRange(0,9);//获取[0,9]区间的随机数 LCD_ShowNum(30+8*16,210,random,1,16); //显示随机数 } delay_ms(10); t++; } }
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #c语言生成随机数0或1