<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32的ADC產(chǎn)生隨機(jī)數(shù)

          STM32的ADC產(chǎn)生隨機(jī)數(shù)

          作者: 時(shí)間:2016-11-28 來源:網(wǎng)絡(luò) 收藏
          因?yàn)樵谧鲆粯訓(xùn)|西需要產(chǎn)生隨機(jī)數(shù),范圍在[0,15],在網(wǎng)上找到一種方法,就是利用ADC懸空引腳產(chǎn)生隨機(jī)數(shù),所以做了嘗試,把嘗試的結(jié)果分享一下,總的來說,隨機(jī)效果還算可以。
          函數(shù)如下:
          首先初始化ADC1,然后讀取通道4即PA4引腳上的電壓值,轉(zhuǎn)換成16位的數(shù)字值后取低4位,再賦給8位變量led_mode_value。
          將這個(gè)led_mode_value變量通過串口送至電腦觀察,效果如下:

          看來隨機(jī)效果還算可以,23次取值,取到了8個(gè)不同值,這樣的隨機(jī)程度可以接受。
          隨機(jī)數(shù)產(chǎn)生過程改進(jìn)版:
          函數(shù)如下:
          初始化ADC1之后,先取一個(gè)低4位的值,然后再取一個(gè)16位隨機(jī)值加到第一個(gè)隨機(jī)4位值上,得到一個(gè)和,然后再取出這個(gè)和的低4位作為最終的范圍在[0,15]中的隨機(jī)數(shù)。
          通過串口送到電腦,效果如下:
          23次的取值統(tǒng)計(jì),統(tǒng)計(jì)到了14個(gè)隨機(jī)值,隨機(jī)效果提升。
          當(dāng)然,利用ADC產(chǎn)生隨機(jī)數(shù)是一個(gè)可行的方法,但由于是利用ADC引腳懸空的噪聲電壓,經(jīng)AD轉(zhuǎn)換來獲取的,所以隨機(jī)效果取決于當(dāng)時(shí)處理器周圍的電磁環(huán)境,電磁干擾越多,隨機(jī)效果就越好,貌似這樣有悖于降低EMI環(huán)境的理論,但有些事物總要作出取舍,世界的天平總是在晃動(dòng)中保持平衡,沒有極好,也沒有極壞,適合的就是最好的。
          PS:
          STM32的ADC引腳對應(yīng)的IO


          關(guān)鍵詞: STM32ADC隨機(jī)

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();