|
随机数是我们编程中非常常用的一项技术,在我们的生活中应用场景十分广泛,例如密码学中对密码的加密,在模拟信号中用来模拟随机事件的出现。 例如我们在之前的使用NanoEdge中测试的数据模拟正弦波的时候就出现了数据太过于精确而不像一个模拟信号的样子。7 ?3 m, Q1 |, c2 s2 _9 g 因此使用随机数可以在模拟仿真领域中起到非常重要的作用。; E5 X; N3 R0 G5 y' ~' j
3 l% h% q2 d4 E: q% H# B) w: i 在STM32参考手册(F4系列)中提到了STM32中具有一个随机数发生器(RNG)读取其可以获得一个32位的随机数。 / g7 j! e$ T& e" G. M
/ o t! K! _6 F 随机数发生器RNG采用模拟电路实现,同样具备着异常检测的功能。接着手册的后续部分讲述了如何操作寄存器中操作实现RNG,但是由于我们使用HAL库编程代码,因此我们直接跳到HAL库的部分。+ {2 | X7 f0 V2 E2 e ! y& s* W9 t$ { b- I7 n. N
2 Y1 ]3 [# ~3 w$ L- H 在CubeMX中我们需要使能RNG功能。 之后创建我们的工程。 y# f6 C" n3 B/ G) t 我们可以使用HAL_RNG_GetRandomNumber来获取随机数
需要注意的是,这里生成的随机数是32位的,因此我们可以利用一些简单的计算来获取我们需要的随机数。! _ F: G5 ?: k& n1 Z4 k! ^" [# _$ O
我们对其进行取余,即可获得0~9之间的随机数。
4 ^, x1 R$ H9 g1 g: |8 z1 | 初次之外,我们可以利用这个随机数来模拟噪声信号。, _# J# B4 ^2 |' }. {& j
我们在原始信号之上添加一个噪声信号,这个噪声信号的产生就由我们的随机数发生器产生。* N- V& v p' \" K) e7 {3 ~& I 4 T, S, L: a" ^1 l5 _ 转载自:电路小白 如有侵权请联系删除 |
【福利三:雨露均沾·逢7狂欢】之四:用一个定时器同步另外两个定时器输出PWM
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
【逢7发帖赢大礼】全网最简单的Arduino_STM32开发环境搭建教程!
STM32F4中文用户手册
STM32F400、STM32F402 Cortex-M4超值单片机
SPI 高温读错最后一位?STM32F42xx 官方根治方案
微信公众号
手机版