使用STM32CubeMX配置工程+MDKARM编写代码实现RNG功能
一、RNG简介
STM32F4带有硬件随机数发生器,采用模拟电路实现。
二、RNG相关寄存器
RNG 控制寄存器:RNG_CR
RNG 状态寄存器:RNG_SR
DRDY 位用于表示 RNG_DR 寄存器包含的随机数的数据是否有效,如果该位为 1,则说有效,可以读取。
RNG 数据寄存器:RNG_DR
三、STM32CubeMX配置
使能RNG
设置NVIC
设置时钟
四、所用HAL库函数
__HAL_RCC_RNG_CLK_ENABLE();//使能RNG时钟
__HAL_RNG_GET_FLAG(&RNG_Handler,RNG_FLAG_DRDY);//读取RNG_SR寄存器DRDY位状态
HAL_RNG_GetRandomNumber(&RNG_Handler);//获取随机数
五、参考资料
《STM32F4xx中文参考手册》
《STM32F4开发指南-HAL库版本_V1.2》