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

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

[复制链接]
埃斯提爱慕 发布时间:2024-5-24 18:46
```! n) `. v6 M$ R9 H+ M
# U083Necule TRNG- [$ b: k7 U- y4 ~
## 通过CubeMX创建工程) D# h8 q1 ?! r

. Z- a# ?; q5 j" ]* k, ~6 G image.png
1 _7 V7 C) X/ w' J![alt text](image-1.png)8 X; x) A! Q2 C& g% `/ V, ]
image-1.png
7 y) E; D& g! Z; D' Z9 y, K& A![alt text](image-2.png)
* F2 F9 `0 q! G- S. L( n/ R% E image-2.png
6 S- Z! h; c( H& Q![alt text](image-3.png)
  _; P; W, U4 i  ~+ j  T; y image-3.png
. @% ~- [1 G; }0 T![alt text](image-4.png)
4 e! L7 ~, u* @& U! A7 R$ B image-4.png
! f; T* Q8 c3 X5 q9 ~7 p![alt text](image-5.png)" b/ n4 ?* q. V* o3 g: X
image-5.png
  J0 N' z+ d$ I/ r" A![alt text](image-6.png)4 D8 ~3 N" S6 ]# i: z
image-6.png ) E$ [! ]5 H% n  @4 s! A
6 H2 t# r- g9 S) e0 C8 Z
## 生成代码,直接编译下载运行+ P" y' p, `( R5 y$ O* k3 |+ n4 w
![alt text](image-8.png)
5 [, Y& s5 p$ b$ P5 C  w image-8.png
! P9 F% \/ o6 j* S5 a' _: Q: P
) `; F" s- {4 I$ m4 O, U0 }  ^% K6 T
## 看不懂,直接OK吧。
1 r  F! R. ?) I; l* G  Q![alt text](image-7.png)- Q5 j5 a* ]& O" p' |0 ?( Y
image-7.png % R) G8 {3 j. X: h. c) ^
, z6 Y4 @! A6 c1 C" {+ P
## 运行OK,串口调试会收到Welcome to STM32 world !  }# ~' Q) V, ?4 e. {% H7 H9 U
    这是Demo里自带的
3 p, v' R$ g& J* \- R: _8 b  \, n) I* S( K  v. |
![alt text](image-9.png)  N5 F. W1 M* f& m: E
image-9.png " H+ ]/ c5 c% M; w; ~
, c2 p$ h, Q- M& Q
## 只要调用这个函数
; y* C; V% Q+ S![alt text](image-10.png)
1 |5 Y, K- `0 U8 K6 l/ p image-10.png
5 l; F+ n9 U9 l5 ^8 \' a' B& P& H; \) m8 x, Z' t/ i& ]
## 在原按键程序里,添加两行代码,即可实现2 [+ l. d. `  {* y- v9 r

! [* t7 M) ]( t6 M8 P" y5 i) F    if (BspButtonState == BUTTON_PRESSED)
$ n+ q: b8 ]7 a& w8 E    {* |- _1 D4 U7 L! g! ^' Q
      /* Update button state */
" j* E8 o. m$ ^      BspButtonState = BUTTON_RELEASED;6 D% X3 d/ v8 ~: n
      /* -- Sample board code to toggle leds ---- */# k7 v6 J- J. i( \' q1 _  C, D& L
      BSP_LED_Toggle(LED_GREEN);
$ j- _+ f5 Q: \6 k+ J      /* ..... Perform your action ..... */1 f* ~  `6 i0 G0 ^: W
. W$ V$ y! e2 n* o' o5 R
      HAL_RNG_GenerateRandomNumber(&hrng, &Trng);$ ^+ s1 q) a! D4 b6 M8 d
4 Y6 Y8 g' }& c2 a# p: j
      printf("The random number is: %d !\n\r", Trng);
4 I# c% R9 a* L( L) Y$ L  }    }
; q2 u( r" _- ]* M" F) h8 p) S" r! s6 Z
![alt text](image-11.png)
% d& R( a8 e+ X# Q% I image-11.png
. T' Y5 _6 o3 r2 q
* V8 g" F1 d+ D& Z. J6 ?## 至此,一个简单的随机数生成并打印功能实现。# C" H: z; [; b1 q- t4 S) R- ]

% y! E& s1 I* {- k6 X8 @5 n## 接下来修改为中断方式,回到cubeMX,使能中断
  J9 ]5 T5 t# t* B) `' W![alt text](image-12.png)3 Z' V+ k4 Z* o  h8 A, ^  x& \1 Q
image-12.png 3 A+ v  E* b9 P; Y, T; }. P

' ?3 r% e4 _0 R& C( Z## 修改程序7 G: U$ s( J; I2 W9 n

5 C5 X! V+ S! C6 |    if (BspButtonState == BUTTON_PRESSED)2 H2 r( |/ O2 ?
    {
& m& b+ [0 M5 Z4 r; \5 P' o# B      /* Update button state */
# F$ k  G( X: ]# B/ O      BspButtonState = BUTTON_RELEASED;
) \9 X$ s+ M7 O' x, D      /* -- Sample board code to toggle leds ---- */3 |- r8 g, W3 ~! o& w3 h
      BSP_LED_Toggle(LED_GREEN);
: m: F' z  d/ y; ?& \) F      /* ..... Perform your action ..... */
: U' |& ~& r" h0 e. Y) G8 p* B- z" ^4 c; X/ e- r
      HAL_RNG_GenerateRandomNumber_IT(&hrng);
; ^/ E$ q+ S' U' m) H7 j3 G9 F9 Q  b& Z2 z# m5 `0 w6 m

/ a9 v2 R( i5 H    }
" |- P% S( |) X- u
  y, i4 T- u/ D4 ^$ O## 添加回调函数, ?/ Y( q2 a0 i% ?

$ H( F" a4 |  X- S$ @2 S1 a5 Wvoid HAL_RNG_ReadyDataCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit)/ Z1 g  p2 ~: ^, t- Y
{
5 D# X2 G0 I9 n, I4 j" l        printf("The random number is: %d !\n\r", random32bit);
: h4 }0 @2 k- T2 a8 |( a( Q}
# A. d' K3 J+ W" l# i! \) W6 T/ ^5 P/ e
## 编译运行. n6 F# X5 T: B- r! v# ?
9 q& E5 I+ J. `& P/ ]
![alt text](image-13.png)
" ^' v7 L/ I: P. ~+ C' ~ image-13.png
, }% r7 e3 P$ M) n+ O7 X
+ R- w: D: W) Z; V5 U4 x## 中断方式也实现。1 m3 U* o. T  Z' H- [
```: l' C; P, ?. m0 G1 M, d
" m# T  ]0 h2 M6 m4 w
收藏 评论0 发布时间:2024-5-24 18:46

举报

0个回答

所属标签

相似技术帖

官网相关资源

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