STM32F4 隨機(jī)數(shù)發(fā)生器RNG
STM32F4的隨機(jī)數(shù)發(fā)生器RNG,以環(huán)境噪聲為種子,產(chǎn)生32位隨機(jī)數(shù)供主機(jī)使用。
【主要特性】
1、產(chǎn)生32位隨機(jī)數(shù) 2、兩次轉(zhuǎn)換時(shí)間間隔40PLL48CLK 3、隨機(jī)數(shù)熵檢測以發(fā)現(xiàn)不正常位,以產(chǎn)生穩(wěn)定序列 3、可被關(guān)閉以省電
【實(shí)驗(yàn)過程】
產(chǎn)生一個(gè)隨機(jī)數(shù),編譯器跟蹤查看隨機(jī)數(shù)
【代碼實(shí)現(xiàn)】
RNG只有三個(gè)寄存器CR、SR和DR。配置信息寫在CR,狀態(tài)信息可從SR讀取,產(chǎn)生的隨機(jī)數(shù)存放在DR中。
首先,使能RNG時(shí)鐘
RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_RNG,ENABLE);
然后,啟動(dòng)RNG
RNG_Cmd(ENABLE);
最后等待隨機(jī)數(shù)產(chǎn)生完畢標(biāo)志,讀數(shù)即可
while(RNG_GetFlagStatus(RNG_FLAG_DRDY) == RESET); //等待隨機(jī)數(shù)準(zhǔn)備完畢
data = RNG_GetRandomNumber(); //讀數(shù)