新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM9+Linux的DS18B20驅(qū)動(dòng)程序設(shè)計(jì)

        基于ARM9+Linux的DS18B20驅(qū)動(dòng)程序設(shè)計(jì)

        作者: 時(shí)間:2014-04-09 來(lái)源:網(wǎng)絡(luò) 收藏

        (4)溫度讀寫過(guò)程

        本文引用地址:http://www.104case.com/article/236202.htm

        ①循環(huán)判斷直到復(fù)位,延時(shí)120ms;

        ②寫入CCH命令,跳過(guò)讀序列號(hào)過(guò)程;

        ③寫入44H命令,開始溫度轉(zhuǎn)換,延時(shí)5 ms;

        ④循環(huán)判斷直到復(fù)位,延時(shí)200 ms;

        ⑤寫入CCH命令,跳過(guò)讀序列號(hào)過(guò)程;

        ⑥寫入BEH命令,讀取寄存器;

        ⑦讀溫度整數(shù)部分;

        ⑧讀溫度小數(shù)部分。

        (5)驅(qū)動(dòng)程序編寫

        選定S3C2440一個(gè)GPIO引腳作為連接的數(shù)據(jù)線,經(jīng)過(guò)查電路圖和S3C2440的芯片手冊(cè),選擇GPF3為連接引腳;

        主要對(duì)GPF的控制寄存器GPFCON和數(shù)據(jù)寄存器GPFDAT進(jìn)行操作,GPF3主要對(duì)應(yīng)GPFCON第6位和第7位,以及GPFDAT的第3位進(jìn)行操作;對(duì)GPFCON[7:6]設(shè)00為輸人,設(shè)01為輸出;GPFDAT[3]設(shè)為輸入時(shí),相應(yīng)的位即為引腳的狀態(tài),設(shè)為輸出則可以對(duì)引腳進(jìn)行置1和置0操作;

        結(jié)合S3C2440的寄存器GPFCON和GPFDAT,以及DS18B20時(shí)序,可以利用C語(yǔ)言編寫下驅(qū)動(dòng)程序,本驅(qū)動(dòng)程序采用實(shí)現(xiàn)read接口函數(shù)的字符設(shè)備驅(qū)動(dòng)。

        3 部分代碼







        最后將data通過(guò)read接口函數(shù)發(fā)送到用戶層——copy_to_user(buf,data,2),即將8位整數(shù)和8位小數(shù)部分送到用戶層,完成一次數(shù)據(jù)讀取過(guò)程。

        4 系統(tǒng)運(yùn)行與測(cè)試

        加載驅(qū)動(dòng)后,通過(guò)用戶層調(diào)用驅(qū)動(dòng)程序,圖4為通過(guò)串口調(diào)試測(cè)試結(jié)果。

        結(jié)語(yǔ)

        完成了基于ARM9和2.6.30的DS18B20驅(qū)動(dòng)程序編寫,實(shí)現(xiàn)了溫度數(shù)據(jù)的采集以及傳輸。以ARM9為平臺(tái),基于2.6.30開發(fā)DS18B20的驅(qū)動(dòng)程序,以模塊的形式加載到內(nèi)核,最后通過(guò)應(yīng)用層調(diào)用驅(qū)動(dòng),獲得溫度數(shù)據(jù)。

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

        linux相關(guān)文章:linux教程



        上一頁(yè) 1 2 下一頁(yè)

        關(guān)鍵詞: Linux DS18B20

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 东宁县| 广东省| 永定县| 镇坪县| 兴义市| 新巴尔虎左旗| 任丘市| 文昌市| 桐梓县| 个旧市| 司法| 甘德县| 台南县| 瓮安县| 宜章县| 威海市| 永吉县| 石河子市| 宝鸡市| 招远市| 寻甸| 兴文县| 安福县| 平陆县| 林周县| 乾安县| 炎陵县| 行唐县| 宿州市| 西藏| 通山县| 正安县| 麻栗坡县| 商都县| 临澧县| 北海市| 察隅县| 雷山县| 澎湖县| 彝良县| 仪陇县|