日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ds1302模块 树莓派_(16)给树莓派B+ 安装一个实时时钟芯片DS1302

發布時間:2025/3/19 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ds1302模块 树莓派_(16)给树莓派B+ 安装一个实时时钟芯片DS1302 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在這里首先感謝glgoo在google被墻的情況下提供搜索功能,還要感謝

http://wiringpi.com/?以及github,盡管自己眼瞎,幾經波折還是發現了塵封已久的少林“七十二絕技”,沒錯,每種絕技都能克制一個樹莓派GPIO控制外設的問題,七十二絕技的核心就是wiringpi這個為Pi GPIO寫的C語言庫了,而每種絕技則暗藏在wiringPi/examples/目錄下,這里就不一一羅列了,大家想學什么招式,就去看每個example,都非常簡短。

其實早在第9篇文章“安裝GPIO庫”,就已經下載并安裝了wiringPi,然而后來一直沒用C,而用的是python,python的便捷性、交互式開發使得調試非常方便,直到這一次準備安裝一個DS1302時鐘芯片時,苦于搜不到相關的解決方案,才最終轉回C庫。然而可能會陷入rtc-pi這個C程序來驅動DS1302,這里面并沒有用wiringPi的封裝,二是直接和交互了,像我這種菜鳥,暫時不會改里面的地址,外文網站上又寫的不清楚。好在最終還是搜到了github里面的ds1302.c,定睛一看原來是在wiringPi項目的examples里,頓時心中千萬頭草泥馬呼嘯而過。

暫時不必著急看ds1302.c源碼,因為,它相當簡單,把自己的線路連接好,引腳編號對應修改就大功告成,然后再仔細品讀源碼不遲。

DS1302時鐘模塊的5個引腳分別是VCC、GND、CLK、DAT、RST,都是有意義的,可以在樹莓派B+上面找到類似的引腳如SCLK、SDA、CE,我們就用這幾個類似的GPIO引腳來和DS1302連接,如下圖:

這里我們要注意這幾個引腳對應的wPi的編號,而不是BOARD編號,對應關系如下:

BOARD - NAME - DS1302 - wPi

1 ? ? ? ? - 3.3V ? - VCC ? ? ?- 無

23 ? ? ? - SCLK ? - CLK ? ? ?- 14

25 ? ? ? - 0V ? ? ?- GND ? ? ?- 無

27 ? ? ? - SDA.0 - DAT ? ? ?- 30

24 ? ? ? - CE0 ? ?- RST ? ? ?- 10

所以,我們只需要用14、30、10這幾個GPIO引腳來編程就可以了。

現在,可以打開wiringPi/examples/ds1302.c文件,它里面包含了wiring/devLib/下的ds1302.h,隱藏了具體的實現細節,可以先不關注。直接看main函數:

需要用到的函數就是畫紅線的幾個,首先調用ds1302setup(int clockPin, int dataPin, int csPin)來設置樹莓派GPIO引腳,參數修改成14、30、10即可。setLinuxClock()設置系統的時間,setDSclock()則是根據系統時間設置DS模塊的時間,ramTest對DS模塊的RAM進行測試,ds1302clockRead()從DS模塊讀出時間,細節處理函數這里略過。現在在examples目錄下make ds1302,成功后即可使用ds1302了。

使用方法:

1)./ds1302 -rtest,測試DS1032的RAM,如果引腳連接錯誤GPIO設置錯誤則會報錯:

成功則會顯示OK:

2)./ds1302 -sdsc,會調用setDSclock(),將DS模塊設置成系統的時間,在這之前需要把自己的時區設置成本地時區cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime,并且同步網絡時間ntpdate cn.pool.ntp.org

3)現在可以從DS模塊讀取時間

一段時間后再讀一次:

看樣子DS模塊已經保存了系統時間。

4)./ds1302 -slc,從DS模塊讀取時間來設置系統的時間

結果設置成了比本地時間慢8個小時,正好是UTC時間。

修改ds1302.c源文件,找到setDSclocl()函數,其中調用了time()來獲取系統時間,而time()函數返回的是從UTC(Coordinated Universal Time)時間1970年1月1日00:00:00(稱為UNIX系統的Epoch時間)到當前時刻的秒數,要想從該秒數轉換成本地時間需要用localtime()函數struct tm *localtime(const time_t *clock),最后修改成如下:

刪除原來的ds1302.o和ds1302,重新make ds1302。

重新執行ntpdate cn.pool.ntp.org同步網絡時間,然后./ds1302 -sdsc設置DS模塊的時間為本地時間,再執行./ds1302查看時鐘模塊的時間,這時應該就顯示正確了。

5)cp ./ds1302 /usr/bin/下,并添加開機啟動項

Arch下面用的是systemctl,所以需要將/usr/bin/ds1302 -slc命令加到一個service中,我是添加在了網卡啟動服務中。

重啟后,時間正確,則說明我們的時鐘模塊安裝成功了。

注:本文中的代碼可以通過下載wiring庫然后自行修改examples/ds1302.c,也可以從我的github下載:https://github.com/hustlbj/raspberry

總結

以上是生活随笔為你收集整理的ds1302模块 树莓派_(16)给树莓派B+ 安装一个实时时钟芯片DS1302的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产一区导航 | 国产乱了高清露脸对白 | 蜜臀视频一区二区三区 | 男女在线观看 | 欧美 唯美 清纯 偷拍 | 四虎1515hh.com | 日韩激情网 | 日韩中文字幕二区 | 色老板精品凹凸在线视频观看 | 91色| 天天草天天草 | 欧美理伦片在线播放 | 亚洲无码精品在线观看 | 久久久久久九九九 | 国产午夜精品久久 | 国产伦精品一区二区三区视频黑人 | 午夜污污 | 午夜激情电影在线观看 | 黄色777| 在线你懂得 | 超碰95在线 | 大香伊人中文字幕精品 | 91精品国产99久久久久久 | 妺妺窝人体色www聚色窝仙踪 | 国产福利小视频在线观看 | 一区二区三区小说 | 一本综合久久 | 国产黄色一区二区 | 视频一区二区中文字幕 | 国产伦精品一区二区三区高清版禁 | 男女网站视频 | 国产精品久久久久久久久免费看 | 一本色道久久综合亚洲精品小说 | 亚洲三级久久 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲视频网站在线 | 国产色婷婷一区二区 | julia一区 | 波多野结衣三区 | 超碰人人在线 | 日韩国产在线观看 | 亚洲xxxxx| 九九久久视频 | 美女隐私免费观看 | 国产影视一区 | 男女午夜激情视频 | 亚洲666| avxx| 免费av免费看 | 中国黄色免费 | 亚洲青色在线 | 色综网 | 色网址在线观看 | 亚洲欧美日韩精品永久在线 | 欧美成人一二三区 | 欧美激情3p | 久久一视频 | 阿的白色内裤hd中文 | 小视频黄色 | 美女被娇喘流出白 | 精精国产xxxx视频在线播放 | 国产精品美女在线 | 亚洲性色图 | 18一20岁毛毛片 | 欧美成人看片黄a免费看 | 波多野结衣高清在线 | cao国产| 免费在线观看视频a | 欧美日韩一区二区三区在线电影 | 中国浓毛少妇毛茸茸 | 国内成人自拍视频 | 人人看人人射 | 久久国产精品久久国产精品 | 91理论片午午伦夜理片久久 | 日本亚洲一区二区三区 | 内射无码专区久久亚洲 | 靠逼在线观看 | 免费三片在线播放 | 欧美成人hd| 久久不射电影网 | 日本少妇喂奶 | 熟妇人妻中文字幕 | 你懂的在线观看网址 | 蜜桃网av | 欧美做受高潮中文字幕 | 成人精品动漫 | 亚洲伦理中文字幕 | 精品少妇爆乳无码av无码专区 | 国产伦一区二区 | 欧美日韩一二三区 | 快播av在线| 国产一二三区在线视频 | 男ji大巴进入女人的视频 | 国产在线观看你懂的 | 中文字幕高清一区 | 偷偷操99| 欧美精品在线观看 | 欧美一级片在线免费观看 | 少妇看片|