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 код работает нормально, генерит случайные числа, код вынесенный в функцию генерит одни и теже числа