STM32F429能发生32位随机数,程序比较简单
/STM32F429随机数发生器
//初始化
RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_RNG, ENABLE); /* 使能RNG时钟 */
RNG_Cmd(ENABLE); /* 使能RNG外设 */
//取随机数
while(RNG_GetFlagStatus(RNG_FLAG_DRDY)== RESET); //等待转换结束
u32 random = RNG_GetRandomNumber(); //提取随机数
下面是测试程序效果
void random(void)
{
//STM32F429随机数发生器
//初始化
RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_RNG, ENABLE); /* 使能RNG时钟 */
RNG_Cmd(ENABLE); /* 使能RNG外设 */
//测试效果
while(1)
{
while(RNG_GetFlagStatus(RNG_FLAG_DRDY)== RESET); //等待转换结束
u32 random = RNG_GetRandomNumber(); //提取随机数=32位
tx7_data[0]=random;
send7_buff(tx7_data,1); //发送低八位出来
Delay(3000);
GPIOB->ODR^=GPIO_Pin_3; //led翻转指示
}
}
发送出来低8位,看看其效果,比较随机,没有啥规律性