stm32產生隨機數

2021-08-14 18:14:59 字數 950 閱讀 6457

stm32使用rand()函式產生隨機數,在os程式設計中會設定srand()隨機種子,其實隨機種子就是某一時候的time()的值,因為這個值不同,所以每次的隨機數都不同。

那麼我們需要在stm32中模擬這樣的乙個隨機種子

1——可以採用adc取樣值,必須是乙個空腳(沒接gnd&vcc)

2——可以採用定時器的計數值

上傳部分**

/*

必須要每次重新整理種子。每次的隨機數才會不一樣

srand()在#include"stdlib.h"

rand()在#include"time.h"

*/srand(timer_count_value); //隨機種子timer_count_value是定時器的計數值,

num = rand() % 128; //生成0—128內的隨機整數,

printf("<<---os_run:%d--->>\r\n",num);

列印結果

<<---os_run:0--->>

<<---os_run:106--->>

<<---os_run:84--->>

<<---os_run:62--->>

<<---os_run:40--->>

<<---os_run:18--->>

<<---os_run:124--->>

<<---os_run:29--->>

<<---os_run:7--->>

<<---os_run:113--->>

<<---os_run:17--->>

<<---os_run:123--->>

<<---os_run:28--->>

<<---os_run:6--->>

<<---os_run:57--->>

<<---os_run:35--->>

stm32產生隨機數

srand和rand 配合使用產生偽隨機數序列。rand函式在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次呼叫rand函式生成的偽隨機數序列都是一樣的。1 使用rtc時鐘的時間作為隨機數種子。2 微控制器內部執行乙個迴...

產生隨機數

先說明一下rand,這個函式用來產生偽隨機數。比如,產生1000的兩個隨機數,產生的兩個一般上是不同的,但如果要產生80個100以內的隨機數,僅用rand函式就不夠。因為產生80個100以內的隨機數,至少有兩個數相等的概率太大了 srand函式,並不能使產生的隨機數完全不同。你可以執行以下這串 in...

隨機數產生

c c 中取隨機數 在計算機中並沒有乙個真正的隨機數發生器,但是可以做到使產生的數字重複率很低,這樣看起來好象是真正的隨機數,實現這一功能的程式叫偽隨機數發生器。有關如何產生隨機數的理論有許多,如果要詳細地討論,需要厚厚的一本書的篇幅。不管用什麼方法實現隨機數發生器,都必須給它提供乙個名為 種子 的...