中职扩展资源包资料:树莓派系列教程16:RTC_第1页
中职扩展资源包资料:树莓派系列教程16:RTC_第2页
中职扩展资源包资料:树莓派系列教程16:RTC_第3页
中职扩展资源包资料:树莓派系列教程16:RTC_第4页
中职扩展资源包资料:树莓派系列教程16:RTC_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、扩展板上面带 树莓派本身没有RTC功能,若树莓派不联网则无法从网络获取正确时间,Pioneer 600 有高精度RTC时钟DS3231芯片,可解决这个问题。 一、配置RTC 1、修改配置文件 1 sudo vi /boot/c on fig.txt 添加RTC设备ds3231 1 dtoverlay=i2c-rtc,ds3231 重启树莓派生效设置,开机后可以运行lsmod命令查看时候有rtc-1307模块。 (注:ds3231为i2c控制,故应打开树莓派I2C功能) 2、读取RTC时钟, 1 sudo hwclock 读取系统时间 1 date 3、设置RTC时间 1 sudo hwcloc

2、k-set - date= ” 2015/08/12 18:00:00” 4、更新RTC时间到系统 1 sudo hwclock -s 5、读取RTC时间及系统时间 1 sudo hwclock;date piStraspberrypl sudo hwclock -r 2Q15年03120 星期三 IT时丈分2( -0.996346 seconds p iftraspberrypidate :oo: oh 2015年 佃月12日星期三17:62:23 CST” pifrrjispbenypisudohwclock et piftraspberrypisudohwclock sudo hvclo

3、GK sudo hwclock 2015年迪月12日星期三此时00分为 2Q15牟 08月 120 星期三 17:532 pi ftraspberrypi piftraspberrypi 一一“ * 2015年胚月12日星期三1技时03分0瞅 -0. 600901 seconds 2015 08 120 星期三 18:03:08 CST piftraspbenrypi 二、编程控制 我们也可以通过I2C编程读写RTC时间,运行i2cdetect - 1命令我们可以看到下图,我们发现 ds3231的i2c地址0 x68的位置显示UU,此时ds3231作为树莓派的硬件时钟,不能通过i2c编程控制,

4、 必须将刚才配置文件中的设置注释掉才能用。 1 sudo vi /boot/co nfig.txt 找到刚才的设置,在前面加# 注释掉 1 #dtoverlay=i2c-rtc,ds3231 重启后再运行i2cdetect 1此时发现ds3231可以通过i2c编程控制 1、bcm2835 01 #in clude 02 #in clude 03 #in clude 04 05 regaddr,sec on ds, minu tes,hours,weekdays,days,m on ths,yeas 06 char buf=0 x00,0 x00,0 x00,0 x18,0 x04,0 x12,

5、0 x08,0 x15; 07 char *str =SUN,Mo n,Tues,Wed,Thur,Fri,Sat; 08 void pcf8563SetTime() 09 10 bcm2835_i2c_write(buf,8); 11 12 13 void pcf8563ReadTime() 14 15 bufO = 0 x00; 16 bcm2835_i2c_write_read_rs(buf ,1, buf,7); 17 18 18 int main (i nt argc, char *argv) 19 if (!bcm2835_i nit()return 1; bcm2835_i2c_

6、beg in(); bcm2835_i2c_setSlaveAddress(0 x68); bcm2835_i2c_set_baudrate(10000); printf(startn); pcf8563SetTime(); while(1) pcf8563ReadTime(); buf0= =buf0 sec buf1= =buf1 min buf2= =buf2 hour 21 22 23 24 25 26 27 28 29 30 31 32 33 buf3 = buf3 buf4 = buf4 buf5 = buf5 week day mouth 34 35 36 37 38 39 40

7、 41 42 43 44 45 46 year/m on th/day prin tf(20%02x/%02x/%02x ,buf6,buf5,buf4); hour:m inu te/sec ond prin tf(%02x:%02x:%02x ,buf2,buf1,buf0); weekday printf(%sn,str(unsigned char)buf3-1); bcm2835_delay(1000); bcm2835_i2c_e nd(); 47 bcm2835_close(); 48 49 return 0; 50 v/bcm2835.h 编译并执行 1 gcc -Wall ds

8、3231.c ds3231 Tbcm2835 2 sudo ./ds3231 suda . /ds3231 00:01 00:02 00:rJ 00:4 piftraspbemrypi start 2015/08/12 2015/08/12 2015/08/12 2015/08/12 2015/08/12 2015/08/12 2015/08/12 2015/03/12 18; 00:00 恥 d 18 18 18 IS 18:00:05 18 13 00; 06 Wed 00:07 恥d 2、python 01 #!/usr/bi n/python 02 # -*- coding: utf-

9、8 -*- 03 import smbus 04 import time 05 06 address = 0 x68 07 register = 0 x00 08 #sec min hour week day mout year 09 NowTime = 0 x00,0 x00,0 x18,0 x04,0 x12,0 x08,0 x15 10 w = SUN,Mo n,Tues,Wed,Thur,Fri,Sat; 11 #/dev/i2c-1 12 bus = smbus.SMBus(1) 13 def ds3231SetTime(): 14 bus.write_i2c_block_data(address,register,NowTime) 16 def ds3231ReadTime(): 17 return bus.read2c_block_data(address,register,7); 18 19 ds3231SetTime(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论