Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

stm32 random number generator

Пн янв 04, 2016 18:48:22

Ребят а существует официальная библиотека для генерации случайных чисел для контроллера stm32f100x (плата stm32vldiscovery)?
Просто колхозить не особо охото с аналоговыми ножками. Пролете свет на эту деталь?

Re: stm32 random number generator

Вт янв 05, 2016 21:28:07

O'NeiLL писал(а):для генерации случайных чисел для контроллера stm32f100x

Самый простой способ использовать RTC в качестве источника энтропии. Например так:
Спойлер
Код:
void rtc_ini() {
  RCC->CSR |= RCC_CSR_LSION;
  while((RCC->CSR & RCC_CSR_LSIRDY)!=RCC_CSR_LSIRDY);
  RCC->BDCR = RCC_BDCR_RTCSEL_1;
  RCC->BDCR |= RCC_BDCR_RTCEN;
}

int main(void) {
  rtc_ini();
  uint8_t num = 0;
  while(1){
    num = (RTC->SSR % 9);
    /*
     
    */
  }
}
или использовать какой либо более серьезный алгоритм.

Re: stm32 random number generator

Вт янв 05, 2016 22:34:59

Вы о чём??? ТСа лень... гвоздями к полу прибила... лень ему было 20 сек. на гугль потратить...
Набираем "генератор случайный чисел"... видим...
https://ru.wikipedia.org/wiki/%D0%93%D0 ... 0%B5%D0%BB
Набираем "STM32 DAC LFSR"... получаем... сходу...
http://we.easyelectronics.ru/STM32/dac- ... rator.html
http://embedded-lab.com/blog/stm32-digi ... erter-dac/

И это не считая... RTC... DWT... SysTick timer... CRC calculation unit... 96-bit unique ID и пр. ...

Re: stm32 random number generator

Ср янв 06, 2016 04:17:42

в STM32F100 нет хардварного TrueRNG -> нет lib.
из недорогих есть в STM32L052.

Re: stm32 random number generator

Сб янв 09, 2016 16:11:32

stm32f1 - это cortex m3, значит код на асме даже переделывать не придётся.
Можно взять частями, или полностью весь проект, описание на http://forum.ixbt.com/topic.cgi?id=48:11735.
функция static uint32_t sRandom( uint32_t Random_max,uint32_t Random_min) с корректным рандромом до 16 бит в случае применения мин/мах.
Рекурсия 48 циклов, на ядре 72мгц - вычисления получаются очень быстрыми. Полный цикл псевдорандома 2^97 комбинаций, надеюсь этого хватит.

Re: stm32 random number generator

Чт июл 05, 2018 10:49:11

stm32f1 - это cortex m3, значит код на асме даже переделывать не придётся.
Можно взять частями, или полностью весь проект, описание на http://forum.ixbt.com/topic.cgi?id=48:11735.
функция static uint32_t sRandom( uint32_t Random_max,uint32_t Random_min) с корректным рандромом до 16 бит в случае применения мин/мах.
Рекурсия 48 циклов, на ядре 72мгц - вычисления получаются очень быстрыми. Полный цикл псевдорандома 2^97 комбинаций, надеюсь этого хватит.

Здравствуйте. Не могли бы Вы подсказать как подключить и использовать данную функцию к си проекту в keil? К сожалению не силен в асме. Спасибо.

Re: stm32 random number generator

Пт июл 06, 2018 17:22:30

Делал так. http://www.cplusplus.com/reference/cstdlib/rand/
Код:
#include <stdlib.h>

//по таймеру 0.3 с
srand(HAL_GetTick());

//в коде
int RandAlg_GetRandInt(int low, int high)
{
   return rand() % ((high + 1) - low) + low;
}

Re: stm32 random number generator

Чт июл 19, 2018 10:50:02

Спасибо. Попробую этот вариант.
Ответить