你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【NUCLEO-U083RC评测】随机数生成并打印显示

[复制链接]
埃斯提爱慕 发布时间:2024-5-24 18:46
```
) z$ _# w' X# j" i# U083Necule TRNG
  ^) h. M4 h' E4 L! }## 通过CubeMX创建工程/ ^% j3 l( O1 h! K/ W2 V( a" d" {

$ }' i; P- [- U image.png ; z+ \; q4 S+ ?
![alt text](image-1.png)+ r0 H4 \1 o6 ^9 {
image-1.png 7 b9 A7 p/ @* t+ p8 E0 D8 v
![alt text](image-2.png)4 e# {- E& w# E7 Q- L2 t8 w$ z$ Q
image-2.png
1 l4 N6 l9 o: b![alt text](image-3.png)  v+ Q) N  m4 i3 R6 `3 S, j  S
image-3.png
. {- b% O2 r) i3 b5 p; i7 @![alt text](image-4.png)
; w# p3 r- L; ^  S image-4.png % G0 j( ]3 F; a* V7 @
![alt text](image-5.png)
& |0 L5 Y+ g- M3 M image-5.png
# @* e$ s6 q! y! m8 O* M2 ?![alt text](image-6.png)
! d! Y3 R1 b3 K0 y  G7 _9 B image-6.png
+ S% d* d% Y4 T4 t% }9 ~  t
8 |0 Q5 a: w; X4 G$ a## 生成代码,直接编译下载运行0 g7 @: a5 W. q1 [# u" d; a
![alt text](image-8.png)$ g0 y: M2 C( p
image-8.png
  ?& B8 S/ f% S- ?  W7 y3 e( Q8 a
( F. o% W4 {+ I' @3 N5 ]' V
## 看不懂,直接OK吧。
1 `0 k+ B$ G2 H7 U' _![alt text](image-7.png)
) T6 i7 \) I2 W) r image-7.png 8 K6 I: G3 {  ~
5 @, ]4 h* \  }: D% Z6 Z( ^) }* X
## 运行OK,串口调试会收到Welcome to STM32 world !3 e: Q  L8 I& w& k- v% }1 u' D! `
    这是Demo里自带的
# H+ r( R4 s4 I8 ]6 G: |  i; ]1 T/ R! |4 a4 Z) |" H& Y
![alt text](image-9.png)3 J* O7 e' _& }& ]
image-9.png $ ]8 }7 m; `) V9 k3 v

* ~8 R: B8 x7 I## 只要调用这个函数+ I5 F+ Z/ T5 s' U& ]* o
![alt text](image-10.png)( n9 j) i5 f  z" n: l! b
image-10.png
' K) V% F2 C# J) J; [- h( G( Z7 p; h  f* j3 w: z0 \
## 在原按键程序里,添加两行代码,即可实现$ F% R$ V9 _. t+ e

: i. x! w6 y1 p" K6 i    if (BspButtonState == BUTTON_PRESSED)
* H3 [" G/ O+ M6 _/ n  l    {
1 e. |* Y0 Y% W2 E' Y4 X1 E) z      /* Update button state */
7 D: l3 E5 i9 Y5 G' H- R& m: P# b      BspButtonState = BUTTON_RELEASED;
6 Z/ |; x( e! W5 k, u      /* -- Sample board code to toggle leds ---- */3 Z3 j) A0 I- `( f& l
      BSP_LED_Toggle(LED_GREEN);
" q- R3 d8 L) l2 k) L& m7 X      /* ..... Perform your action ..... */
+ `* w+ J7 }7 O# A6 a
! Q, X% C0 C; u( @$ f      HAL_RNG_GenerateRandomNumber(&hrng, &Trng);
7 \& \+ I! L+ L
0 k$ b$ ~: b: a( w: \& j      printf("The random number is: %d !\n\r", Trng);$ H% ?" A2 m; n
    }9 n% ]4 S4 i/ ]  R' }) u6 u
; j9 E; _% n( Z& H
![alt text](image-11.png)) C) O7 @! _4 S% i
image-11.png
: }+ O2 p- X/ l0 e* S! U7 R% {5 I& D* U- `' T4 }: n
## 至此,一个简单的随机数生成并打印功能实现。
$ U. R! W1 I' h$ q9 }
9 p- }/ ~9 c( g; a& Q) a## 接下来修改为中断方式,回到cubeMX,使能中断4 o) D. Y* b  M2 z7 o+ I8 k. q
![alt text](image-12.png)1 D' b, y" b. P4 ~; ~* @
image-12.png
$ F7 x$ s: s3 o5 q) B) r" m6 p7 l2 ~: W: p
## 修改程序. x( z; R) n! t
# V0 \  c& ^  h$ Q) p2 l
    if (BspButtonState == BUTTON_PRESSED)
3 G; y; l9 O9 k" J# E    {0 ^" I! e' q6 E& E6 t. ]
      /* Update button state */2 {# e/ L! J) V+ j8 u
      BspButtonState = BUTTON_RELEASED;
* {! T+ ~/ `. F5 I. T4 x1 m      /* -- Sample board code to toggle leds ---- */
- ^' Q7 a9 M5 n7 k      BSP_LED_Toggle(LED_GREEN);
) J4 V* H; ?! e: X+ H- v      /* ..... Perform your action ..... */
; w, A- H$ h4 U& C- \- s* L* G! B8 {) R& r  L( M
      HAL_RNG_GenerateRandomNumber_IT(&hrng);2 ~3 S" p7 l3 i% Q# X- t" l" }
, Z7 Y& M4 t' V' l! |

9 J7 W7 E& g6 s$ M- m    }6 k  R8 A; r# f
) R, C% l& Z6 S
## 添加回调函数
  w2 z# `; O; K. r0 P) s4 k9 K( g
/ @- P3 L8 S9 P9 V4 t# }0 J+ Avoid HAL_RNG_ReadyDataCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit)+ ^; F. T4 a  C, O* z
{
- s6 F0 Y0 O& D; ^' `        printf("The random number is: %d !\n\r", random32bit);1 L, p* N% S! o# j
}* |4 ?) ]5 j8 t8 m+ G$ x
+ j3 C; k: H( l2 r+ h
## 编译运行  {$ B1 j5 O) L0 }

2 h2 }2 i) P. @![alt text](image-13.png)
8 X. q) M( Y+ d9 S8 u image-13.png
$ o9 t) h0 m& G5 c. K% o9 C1 c
1 b; T+ g. R, }7 q4 [# F% h## 中断方式也实现。
2 C$ M3 Y/ \* i( _/ V' d) A6 M4 I```( z8 O5 I( t2 o7 E
: b. I5 w" i7 ^# G7 k# R
收藏 评论0 发布时间:2024-5-24 18:46

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版