一開始,查閱DS2431的數(shù)據(jù)手冊(cè),根據(jù)上面的邏輯寫DS2431的代碼,寫了好久,代碼是出來了,可是就是不能正常工作。 后來發(fā)現(xiàn)了這個(gè)方法,簡(jiǎn)直太好用啦,真是方法才是王道呀,平臺(tái)才是王道。 一:修改配置文件sudo nano /boot/config.txt 在/boot/config.txt文件的最后一行加上dtoverlay=w1-gpio-pullup,gpiopin=4(管腳為BCM編號(hào)) 注: 其他資料說是gpiopin=4的管腳號(hào)可以更具自己的需要隨意修改,根據(jù)本人的反復(fù)試驗(yàn),發(fā)現(xiàn)當(dāng)修改了管腳號(hào)后,樹莓派無法識(shí)別出該器件,故為保險(xiǎn)起見:建議不要修改,就用4號(hào)管腳。 經(jīng)查閱大量資料:在《精通 Raspberry Pi》([美] Warren Gay著 張龍杰 陳青華 劉勇 譯)(2015年11月第一版)書中162頁(yè): Raspbian linux驅(qū)動(dòng)程序支持GPIO 4(P1-07)上的單總線。這個(gè)引腳硬編碼在內(nèi)核驅(qū)動(dòng)程序中。如果想改變它,在源文件中尋找W! GPIO的定義: arch/arm/mach-bcm2708.c 將W!_GPIO的定義(在第73行左右查找)改到你需要的引腳上: //如果可以,使用GPIO 4作為單總線GPIO 引腳 #define W1_GPIO 4 接下來,當(dāng)然,你需要重建并安裝新內(nèi)核。 二,重啟樹莓派,使之前的配置生效動(dòng)態(tài)加載需要用到的內(nèi)核模塊 sudo modprobe w1_ds2431 sudo modprobe w1-gpio 運(yùn)行l(wèi)smod命令,發(fā)現(xiàn)所需要的模塊已經(jīng)啟動(dòng)了 三:如果上述步驟沒有問題,那么接下來,就可以操作DS2431啦cd /sys/bus/w1/devices 就會(huì)看到下面的文件夾 圖中以2d-....的文件就是DS2431的設(shè)備文件 進(jìn)入該目錄,會(huì)發(fā)現(xiàn)有eeprom的文件,就是DS2431的存儲(chǔ)文件 通過cat eeprom就可以讀出里面寫入的內(nèi)容,圖中的內(nèi)容就是我寫進(jìn)去的 注:寫入文件時(shí),一開始我使用sudo echo "qcq"> eeprom 發(fā)現(xiàn)總是提示:權(quán)限不夠 后來我用 sudo nano eeprom打開文件,像普通文件一樣寫入數(shù)據(jù),就沒有問題了。 方法參考(鏈接) 博文索引 持續(xù)更新中。。。 |
|