新聞中心

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

        STM32的ADC產(chǎn)生隨機(jī)數(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。
        將這個led_mode_value變量通過串口送至電腦觀察,效果如下:

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


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

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 安宁市| 栾城县| 垣曲县| 墨脱县| 东至县| 呼图壁县| 漠河县| 鱼台县| 新乡市| 湄潭县| 自贡市| 神农架林区| 财经| 大关县| 汕尾市| 龙南县| 赤壁市| 射阳县| 卓资县| 玉树县| 梁平县| 丰台区| 修文县| 东辽县| 双流县| 灌云县| 南宁市| 清涧县| 抚顺县| 大姚县| 新平| 蓝山县| 山丹县| 平乡县| 桐庐县| 鹰潭市| 凤台县| 牡丹江市| 卢湾区| 苍南县| 武强县|