STM32 / RND(random_number_generator)

Подскажите, почему один и тот же код в main и вынесенный в функцию работает по разному:

int main( void )
{
    __HAL_RCC_RNG_CLK_ENABLE();

    RNG_HandleTypeDef hrng;  
    hrng.Instance = RNG;
    HAL_RNG_Init( &hrng );
    uint32_t randomValue;
    uint32_t array[ 100 ]; 

    if (HAL_RNG_GetState( &hrng ) == HAL_RNG_STATE_READY) 
    {
        for( uint8_t i = 0; i < 100; ++i )
        {
            if (HAL_RNG_GenerateRandomNumber( &hrng, &array[i] ) == HAL_OK) 
            {
            }
            DLOG_BOOT( "%x \r\n", array[i] );
        }
    }

И тоже самое

    void AES_Generate_IV_KEY( void )
{
    __HAL_RCC_RNG_CLK_ENABLE();
    RNG_HandleTypeDef hrng;  
    hrng.Instance = RNG;
    HAL_RNG_Init( &hrng );

    uint32_t randomValue;

    uint32_t array[ 100 ]; 

    if (HAL_RNG_GetState( &hrng ) == HAL_RNG_STATE_READY) 
    {
        for( uint8_t i = 0; i < 100; ++i )
        {
            if (HAL_RNG_GenerateRandomNumber( &hrng, &array[i] ) == HAL_OK) 
            {
            }
            DLOG_BOOT( "%x \r\n", array[i] );
        }
    }
}

В main код работает нормально, генерит случайные числа, код вынесенный в функцию генерит одни и теже числа


Ответы (0 шт):