埃斯提爱慕
发布时间:2024-5-24 18:46
|
```! B$ ~3 Y& k" b9 E! ` # U083Necule TRNG, o3 R5 }1 v& m( u, `5 I ## 通过CubeMX创建工程 ; S- _" k5 P" B9 y$ p: o


; G6 d( G* n; {9 h/ k$ x4 L& Z

; {, w, t' I f, ? i1 i# M

## 生成代码,直接编译下载运行 # ~' n. B# |9 H2 g
## 看不懂,直接OK吧。4 c, h: Y/ U0 g) H' ?5 F$ T # G" I4 {( `4 j8 p/ ]9 E5 N5 F
## 运行OK,串口调试会收到Welcome to STM32 world !! \) E6 w) B/ k2 o2 S) [4 _% a 这是Demo里自带的 s' D' H8 r D) u; e3 @0 c " a5 G, x/ q, E5 Z6 Z 
## 只要调用这个函数 . f+ ]3 Q1 d9 Y0 x
4 B. A7 x5 ~# e& b, v/ U ## 在原按键程序里,添加两行代码,即可实现 if (BspButtonState == BUTTON_PRESSED)% a4 @2 N0 {( h7 |0 [ N { /* Update button state */ BspButtonState = BUTTON_RELEASED;# C. E( T1 e7 {- G /* -- Sample board code to toggle leds ---- */3 R1 e! g6 M- |* n: G+ G3 o BSP_LED_Toggle(LED_GREEN);$ V- k: g2 `% G5 S /* ..... Perform your action ..... */: v- {0 B8 B' l% B HAL_RNG_GenerateRandomNumber(&hrng, &Trng); e1 `5 ^: R+ } * S3 T" k! G- N printf("The random number is: %d !\n\r", Trng);4 ?3 k3 ]3 P" x2 L2 W8 V }* _ H( G5 k1 j" K8 l' Q/ [+ n1 U 5 B' u) u" J; H& P+ u( E% P
" K6 ^1 F" h$ q Q8 q ## 至此,一个简单的随机数生成并打印功能实现。- ?9 ~+ a( X, d# V+ F' O0 y ## 接下来修改为中断方式,回到cubeMX,使能中断$ A) ?0 |+ I" f# s' n9 ^ 
## 修改程序 ! M3 r* T$ z h/ Z# n: M if (BspButtonState == BUTTON_PRESSED) { /* Update button state */% T2 Z, v$ T, G- E. J4 u! w BspButtonState = BUTTON_RELEASED; /* -- Sample board code to toggle leds ---- */* _* P. Z$ `! g- L, T2 Q BSP_LED_Toggle(LED_GREEN);% n- B8 b" M. V. _( _4 q /* ..... Perform your action ..... */! Y0 O9 T" a( ^+ C# K. `, W L8 P+ ?; W& a+ F0 H4 `. y. x HAL_RNG_GenerateRandomNumber_IT(&hrng);( p6 u6 b/ D. K# o2 u % {/ O! F) v2 W/ I7 r1 n7 f 8 P/ ^8 }4 }, Y } 7 O- q+ `2 Y2 `4 [; i; P& _ x ## 添加回调函数0 f, y/ v8 ]" x! _: ], H9 l void HAL_RNG_ReadyDataCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit)9 ?! [" T8 Z' U. _. `* x {( w6 }. k$ }8 [3 @# O* B printf("The random number is: %d !\n\r", random32bit); }( E6 X s+ }8 L1 U5 c 6 C) { K0 j, ]/ r& O ## 编译运行 u/ X% Z/ a* u 5 G( f7 u+ \* |
$ ]6 @0 Q1 c1 f, v" b ## 中断方式也实现。2 e% ]2 k0 p9 c& Z3 y ```: I; a: B1 H [ |
【STM32H5 评测】基础硬件加密与随机数性能 - STM32H5E5实测硬件AES加解密、HASH运算、TRNG真随机数输出速率与稳定性
【STM32H5 评测】内存读写性能 - STM32H5E5实测Flash,SRAM读写速度,用DMA搬运大块数据
【STM32H5 评测】CPU核心性能 - STM32H5E5跑 RTOS,观察任务切换速度、中断响应快慢
【NUCLEO-C562RE】OLED 显示
保姆级教程:CMake 工程导入 STM32CubeIDE 步骤
STM32CubeCLT 1.22.0新版本发布
【下载问题解决】关于ST官网下载软件问题解决
【STM32H735G-DK测评】lvgl移植
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
《MCUBoot课程》学习笔记+从信任链原理到量产实践
微信公众号
手机版