STM32F4的隨機數發生器RNG,以環境噪聲為種子,產生32位隨機數供主機使用。
【主要特性】
1、產生32位隨機數 2、兩次轉換時間間隔40PLL48CLK 3、隨機數熵檢測以發現不正常位,以產生穩定序列 3、可被關閉以省電
【實驗過程】
產生一個隨機數,編譯器跟蹤查看隨機數
【代碼實現】
RNG只有三個寄存器CR、SR和DR。配置信息寫在CR,狀態信息可從SR讀取,產生的隨機數存放在DR中。
首先,使能RNG時鍾
RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_RNG,ENABLE);
然后,啟動RNG
RNG_Cmd(ENABLE);
最后等待隨機數產生完畢標志,讀數即可
while(RNG_GetFlagStatus(RNG_FLAG_DRDY) == RESET); //等待隨機數准備完畢
data = RNG_GetRandomNumber(); //讀數