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





