|
發布時間: 2021-7-25 22:18
正文摘要:在stm32中產生一個隨機數就是一句話的事,利用中斷按鍵程序可以讓它變化得產生隨機數,那么如何讓它可以隔一段時間自動產生不同的隨機數自動變化得去顯示呢 |
|
告訴你,我在工作中采用的方法: 1、一定要基于一個隨機的輸入事件。只要是與IO口相連接的,輸入無規律的都可以拿來作為隨機事件。 2、建立一個高速循環計數器N。 3、建立一組隨機數存儲單元R[]用于儲存隨機數,數組數量由你根據需要而定。 4、每當IO發生輸入事件時(輸入是隨機的),就將N存入R[]中,也是輪流循環復蓋存儲。 如此:R[]中的數字(或其中的幾位,例如N是16位的,而你只要取0-127,則取其中的任意7位即可)就作為隨機數,供你使用。 本方式的使用條件是:取隨機數速率,小于IO隨機事件發生的速率。 為何要用數組儲存呢?偶爾兩次取隨機數間隔時間,會小于IO口輸入事件的間隔時間。用數組可以先儲存一些隨機數(事件前產生的)。 |
| 隨機數可以用哈希算法產生,比如md5、sha256,計算需要一定時間。 |
|
沒什么好辦法,C51里面隨機函數是偽隨機數,但是人類按鍵動作跟定時器運行是完全不相關的,所以以按鍵時定時器的值來做隨機種子,偽隨機算法一樣可以獲得真隨機數。 但是你要定時自動生成,我就想不出能弄出真隨機數的辦法了。 |