| /** | |
| ****************************************************************************** | |
| * File Name : RNG.c | |
| * Description : This file provides code for the configuration | |
| * of the RNG instances. | |
| ****************************************************************************** | |
| * @attention | |
| * | |
| * <h2><center>© Copyright (c) 2020 STMicroelectronics. | |
| * All rights reserved.</center></h2> | |
| * | |
| * This software component is licensed by ST under Ultimate Liberty license | |
| * SLA0044, the "License"; You may not use this file except in compliance with | |
| * the License. You may obtain a copy of the License at: | |
| * www.st.com/SLA0044 | |
| * | |
| ****************************************************************************** | |
| */ | |
| /* Includes ------------------------------------------------------------------*/ | |
| #include "rng.h" | |
| /* USER CODE BEGIN 0 */ | |
| /* USER CODE END 0 */ | |
| RNG_HandleTypeDef hrng; | |
| /* RNG init function */ | |
| void MX_RNG_Init(void) | |
| { | |
| hrng.Instance = RNG; | |
| hrng.Init.ClockErrorDetection = RNG_CED_ENABLE; | |
| if (HAL_RNG_Init(&hrng) != HAL_OK) | |
| { | |
| Error_Handler(); | |
| } | |
| } | |
| void HAL_RNG_MspInit(RNG_HandleTypeDef* rngHandle) | |
| { | |
| if(rngHandle->Instance==RNG) | |
| { | |
| /* USER CODE BEGIN RNG_MspInit 0 */ | |
| /* USER CODE END RNG_MspInit 0 */ | |
| /* RNG clock enable */ | |
| __HAL_RCC_RNG_CLK_ENABLE(); | |
| /* USER CODE BEGIN RNG_MspInit 1 */ | |
| /* USER CODE END RNG_MspInit 1 */ | |
| } | |
| } | |
| void HAL_RNG_MspDeInit(RNG_HandleTypeDef* rngHandle) | |
| { | |
| if(rngHandle->Instance==RNG) | |
| { | |
| /* USER CODE BEGIN RNG_MspDeInit 0 */ | |
| /* USER CODE END RNG_MspDeInit 0 */ | |
| /* Peripheral clock disable */ | |
| __HAL_RCC_RNG_CLK_DISABLE(); | |
| /* USER CODE BEGIN RNG_MspDeInit 1 */ | |
| /* USER CODE END RNG_MspDeInit 1 */ | |
| } | |
| } | |
| /* USER CODE BEGIN 1 */ | |
| uint32_t HAL_GetRandom(void) { | |
| uint32_t random = 0; | |
| // Wait for the generator to become ready to use | |
| while(HAL_RNG_GetState(&hrng) != HAL_RNG_STATE_READY); | |
| // Generate random 32 bit number and return it | |
| if(HAL_RNG_GenerateRandomNumber(&hrng, &random) != HAL_OK) { | |
| Error_Handler(); | |
| } | |
| return random; | |
| } | |
| /* USER CODE END 1 */ | |
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |