```0 w9 B: o; t- x9 e # U083Necule TRNG ## 通过CubeMX创建工程 7 X& O3 C9 O: o% e( j* C4 i5 n* ~ ![alt text](image-1.png)) s" h% C7 Y. t9 j9 c. { ![alt text](image-2.png)4 r, }0 T+ g9 E2 k+ u+ @ ![alt text](image-3.png)# r/ N7 a- W4 {/ S" X( j ![alt text](image-4.png) ![alt text](image-5.png) ![alt text](image-6.png) ## 生成代码,直接编译下载运行9 Y" Z" F0 o- j4 \8 ` ![alt text](image-8.png) 8 t9 F& M& r: @1 q1 Y ## 看不懂,直接OK吧。 ![alt text](image-7.png) 6 q, e2 u# V& s3 }" e ## 运行OK,串口调试会收到Welcome to STM32 world ! 这是Demo里自带的 ![alt text](image-9.png) * f1 B& P$ _5 ]' h2 O( K& x ## 只要调用这个函数 ![alt text](image-10.png), O7 _3 e2 f9 H. U$ B& d7 k% V# l. E ## 在原按键程序里,添加两行代码,即可实现) g5 K+ Z$ g/ q. @: D if (BspButtonState == BUTTON_PRESSED) { /* Update button state */ BspButtonState = BUTTON_RELEASED;) d2 A3 o* O* j0 G: B1 E /* -- Sample board code to toggle leds ---- */9 g/ ?2 L' Y) Y/ ? BSP_LED_Toggle(LED_GREEN);2 v* s9 {0 ]; C" P1 y$ b0 L p2 ?+ ~ /* ..... Perform your action ..... */ U* O& e7 F! X) w8 S HAL_RNG_GenerateRandomNumber(&hrng, &Trng);$ ?" Q, ]7 H$ V1 K & F( E6 R9 h y; {& L2 k printf("The random number is: %d !\n\r", Trng);+ m$ |. M# b8 D6 p' x }0 e% h" f5 l: K H2 S: a" I) {, [ 9 y8 f! S9 P! H. u3 z2 U4 y ![alt text](image-11.png) 1 T; A Y9 Z. y ## 至此,一个简单的随机数生成并打印功能实现。6 E/ [* d6 H( w( Z6 ^- n0 `2 W ) [( [+ V8 _6 L2 ? ## 接下来修改为中断方式,回到cubeMX,使能中断 ![alt text](image-12.png)! }9 a7 _; @' D+ T1 { & V9 D7 h4 i$ c ## 修改程序. V$ B: d* F! O" Q3 l $ w, c* L+ o5 ?6 B9 g if (BspButtonState == BUTTON_PRESSED) { /* Update button state */1 w2 b) i' \/ N M8 X6 ?2 y BspButtonState = BUTTON_RELEASED;! z0 W! X ^2 B7 w# E& X7 [; H* ^ /* -- Sample board code to toggle leds ---- */ BSP_LED_Toggle(LED_GREEN); /* ..... Perform your action ..... */5 z6 `/ l+ z6 N2 j , M" e* b5 P# d! c3 q7 \0 I HAL_RNG_GenerateRandomNumber_IT(&hrng); }! I, `5 T) k* f* s" Y 8 ^% `: L" x! @: E/ o& i6 Q, G ## 添加回调函数 z# M% H$ F P0 W ( \( x9 G1 B0 k. k& U$ e- d% ]2 Y' h void HAL_RNG_ReadyDataCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit) {( c, Y9 p* t3 X7 l! J& ~ printf("The random number is: %d !\n\r", random32bit);9 C) S& Z5 ^8 q } U4 _& K2 Y* R0 ~" \ ## 编译运行 4 ~, d! m, m$ \% Y% G ![alt text](image-13.png) a7 U6 z* B# E X+ ]) s: |5 y- i. n ## 中断方式也实现。& v2 c6 `0 _' [/ J; x; T- F! t& j ``` / s0 f. C7 ]8 `0 a" |- f |
【NUCLEO-U083RC评测】+ AES加解密模块性能测试
【NUCLEO-U083RC评测】+ RNG硬件随机数模块生成彩票号码
【NUCLEO-U083RC评测】+真随机数测试
【NUCLEO-U083RC评测】+串口shell移植
【NUCLEO-U083RC评测】低功耗定时器及休眠唤醒
【NUCLEO-U083RC评测】AES加密解密
【NUCLEO-U083RC评测】④RNG随机数发生器
【NUCLEO-U083RC评测】③AES加解密测试
【NUCLEO-U083RC评测】串口printf输出
【NUCLEO-U083RC评测】1.MSI时钟,Sleep,stop,standy,shutdown四种低功耗模式测试