``` # U083Necule TRNG/ @6 ~/ E1 _; D" d/ \/ r5 [5 q ## 通过CubeMX创建工程 ![alt text](image-1.png)7 d# G% _0 c3 B+ V) j ![alt text](image-2.png) ![alt text](image-3.png)! u! F5 [: M* y H _9 y ![alt text](image-4.png) ![alt text](image-5.png) ![alt text](image-6.png) ## 生成代码,直接编译下载运行 ![alt text](image-8.png) 8 b8 l6 k1 x. f+ @ U ## 看不懂,直接OK吧。" m2 I5 W1 ?) ]% U ![alt text](image-7.png) ## 运行OK,串口调试会收到Welcome to STM32 world !( n: L5 \5 N* V# e9 @ 这是Demo里自带的/ b0 d8 ?) F: T0 P 0 O2 v% n) j h- g3 l4 a ![alt text](image-9.png) ## 只要调用这个函数8 S2 ^0 l7 a" D0 [" b1 _) w+ A ![alt text](image-10.png) ## 在原按键程序里,添加两行代码,即可实现 if (BspButtonState == BUTTON_PRESSED)3 Z+ W z, j; K9 l, j/ M' d { /* Update button state */9 F$ s3 T, B( A. r0 k: \9 p BspButtonState = BUTTON_RELEASED;3 ^5 \5 i& P9 b3 F/ E8 \2 H /* -- Sample board code to toggle leds ---- */4 L* e2 O' z0 [2 `4 j/ x BSP_LED_Toggle(LED_GREEN);1 H' |" W! c$ p /* ..... Perform your action ..... */ s' U# k! ? W$ t/ D J8 n/ Q HAL_RNG_GenerateRandomNumber(&hrng, &Trng); 2 N4 W6 x1 N7 w+ F J printf("The random number is: %d !\n\r", Trng); }# M0 c' V; F: s% o , } V/ l, N9 l+ g3 g ![alt text](image-11.png). ?" u+ r! A1 _% n: g& _0 \ ; u# O6 n2 A8 m/ Y2 m R+ K- |/ A& n6 f ## 至此,一个简单的随机数生成并打印功能实现。 ## 接下来修改为中断方式,回到cubeMX,使能中断, H1 s- @* H9 w. n8 h! l ![alt text](image-12.png)! v( _# \3 F% e( Q! \: s8 K5 N8 D ) R. j/ ~" R+ V& V0 _+ v7 V" O# y- t; w ## 修改程序 if (BspButtonState == BUTTON_PRESSED)" x) V: ]( K6 G. T6 Z) c { /* Update button state */ BspButtonState = BUTTON_RELEASED;! k% y. S, {0 C% t' z6 k /* -- Sample board code to toggle leds ---- */ BSP_LED_Toggle(LED_GREEN);, Q' e* n' \6 K; i0 }( u /* ..... Perform your action ..... */ HAL_RNG_GenerateRandomNumber_IT(&hrng); $ a' X) l6 h; t } ## 添加回调函数 F {& }0 d: O. J; D9 ? void HAL_RNG_ReadyDataCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit)1 d3 s4 M+ c( r$ l2 Y' J& S { printf("The random number is: %d !\n\r", random32bit); } ## 编译运行 ![alt text](image-13.png)! p9 k0 _0 L* a) \ ## 中断方式也实现。$ a R1 l, J* L0 O; g ```9 ]8 {) R* Z7 c/ s |
【狂欢三】PWNUCLEO-U083RC M 互补输出配置
IDE删除编译中间文件
NUCLEO-U083RC学习历程-空闲中断+DMA接收不定长数据
今天下午直播 | 解析STM32U0 新一代超低功耗入门级MCU
STM32CubeIDE 快速入门指南
有奖直播 | 解析STM32U0 新一代超低功耗入门级MCU
行业应用篇 | STM32U0为水气表提供降本增效新思路
【NUCLEO-WB09KE评测】BLE创建服务和写特征控制LED
基于STM32CubeIDE+MPU6050做的动量轮平衡自行车(一)
【NUCLEO-WB09KE评测】使用I2C点亮一个OLED