我造轮子,你造车,创客一起造起来!塔克创新资讯【塔克社区 www.xtark.cn 】【塔克博客 www.cnblogs.com/xtark/ 】
本文介绍X-CTR100控制器 STM32F4硬件随机数发生器生成随机数功能,可用于滤波、算法加密、验证等问题。
原理
STM32F4自带了硬件随机数发生器(RNG),RNG处理器是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个32位的随机数。
STM32F4的随机数发生器框图。
例程
本例程实现产生任意随机数和0至99范围随机数,并串口输出显示。
硬件说明
硬件资源:
- 串口UART1
硬件连接:
使用MicroUSB数据线连接X-CTR100 COM接口。
软件生态
X-SOFT软件生态,X-API文件如下。
ax_rng.c——X-CTR100 硬件随机数产生器源文件
ax_rng.h——X-CTR100 硬件随机数产生器头文件
操作函数如下:
void AX_RNG_Init(void); //RNG初始化 int32_t AX_RNG_GetRandomNum(void); //RNG获取随机数 uint32_t AX_RNG_GetRandomNum_Range(uint32_t min, uint32_t max); //RNG获取范围内随机数 |
软件说明
主程序。
int main(void) { int32_t random;
/* X-CTR100初始化 */ AX_Init(115200); printf("***X-CTR100 RNG硬件随机数产生器例程***\r\n\r\n");
//模块初始化及配置 AX_RNG_Init();
while (1) { //获取任意随机数 random = AX_RNG_GetRandomNum(); printf("任意随机数:%d ", random);
//获取[0-99]任意随机数 random = AX_RNG_GetRandomNum_Range(0, 99); printf("随机数[0-99]:%d \r\n", random);
AX_Delayms(1000); AX_LEDG_Toggle(); } } |
实现效果
运行效果如下图所示。