``` # U083Necule TRNG ## 通过CubeMX创建工程9 s) D4 E2 g0 b* h. w( { ![alt text](image-1.png) ![alt text](image-2.png) ![alt text](image-3.png) ![alt text](image-4.png), p/ o( {$ s+ Y% c. t. B: ? ![alt text](image-5.png)2 w7 `4 u0 n( D: F) ^2 w& h6 F* @7 V0 c ![alt text](image-6.png) ## 生成代码,直接编译下载运行, R& j) K5 L3 g: c) u3 o ![alt text](image-8.png) ! t, c; L- b8 B' v ## 看不懂,直接OK吧。 ![alt text](image-7.png): |0 O* g" h" T- C8 A" Z ## 运行OK,串口调试会收到Welcome to STM32 world ! 这是Demo里自带的* w( @$ i- f! ?- O' z9 o" T 7 S! d( e/ C# y2 g9 L& G/ ~, o: W ![alt text](image-9.png)3 } J& w/ Y; N; Q/ E$ i: ?/ O ## 只要调用这个函数 ![alt text](image-10.png) # e7 E$ f* z3 R, v$ F. b- f3 ~ ## 在原按键程序里,添加两行代码,即可实现) q. s: e# W m ^$ L; y5 c8 L( n , J) w3 k0 s2 U: d" L1 {1 Z) w if (BspButtonState == BUTTON_PRESSED) { /* Update button state */ BspButtonState = BUTTON_RELEASED; /* -- Sample board code to toggle leds ---- */ BSP_LED_Toggle(LED_GREEN);- s* K T1 e( U/ X /* ..... Perform your action ..... */ HAL_RNG_GenerateRandomNumber(&hrng, &Trng); ) S. }1 u0 y7 a& M0 E# _. X printf("The random number is: %d !\n\r", Trng);0 `7 Y* S" A ~. j } ![alt text](image-11.png)# _/ A8 c0 y/ L+ U' T) s / o' O9 f2 \& T( V F1 q ## 至此,一个简单的随机数生成并打印功能实现。3 H8 R, \8 c8 }% y ## 接下来修改为中断方式,回到cubeMX,使能中断0 l) W6 {1 R! n' M3 Q ![alt text](image-12.png) ; D- X% m; F: S& A1 w# s ## 修改程序2 ?( y: _$ j+ |5 F8 C+ r4 q; e: E1 ^ ! L% u6 X7 W7 h3 n3 ?$ F if (BspButtonState == BUTTON_PRESSED) {* F7 T8 D% c2 K( \$ T: A /* Update button state */ BspButtonState = BUTTON_RELEASED; /* -- Sample board code to toggle leds ---- */- R+ k) y1 X) M o5 S* P: g BSP_LED_Toggle(LED_GREEN);' a8 ]" Z* H- \ /* ..... Perform your action ..... */ % ^" C; I0 @4 G HAL_RNG_GenerateRandomNumber_IT(&hrng);7 _% c7 f1 ~; q& @ K7 O0 i } 6 i; n# c' s& \/ W) q: O ## 添加回调函数2 ]% r, k6 F% J r3 t; o9 V0 l" T7 i void HAL_RNG_ReadyDataCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit)0 j8 X3 S& j/ C8 y j, q { printf("The random number is: %d !\n\r", random32bit); } ## 编译运行 ; S* N# l3 y* T' l# C A ![alt text](image-13.png) 5 c1 c9 s! r- h' C ## 中断方式也实现。7 @ i" K' y5 o+ x9 L* j7 c ```$ d( q: B; X7 R6 Q1 _/ K W 3 y8 y/ Y0 C6 {% E R |
STM32CubeIDE 快速入门指南
有奖直播 | 解析STM32U0 新一代超低功耗入门级MCU
行业应用篇 | STM32U0为水气表提供降本增效新思路
【NUCLEO-WB09KE评测】BLE创建服务和写特征控制LED
基于STM32CubeIDE+MPU6050做的动量轮平衡自行车(一)
【NUCLEO-WB09KE评测】使用I2C点亮一个OLED
【NUCLEO-WB09KE评测】USART的printf和GPIO的使用
STM32CubeIDE 1.3.0 汉化方法
【STM32H7S78-DK评测】XIP模板问题处理与电机控制
打卡学习 | 《STM32U0线上课程》上线!