为树莓派3B添加一个实时时钟DS1302

1、在系统中安装wiringPi(这个就不多说了很简单)
2、连接ds1302模块和树莓派引脚
连接前需要在ds1302的DTA引脚上添加一个10K的上拉电阻,
VCC—3.3V—-
GND—0V—-
CLK—SCLK—-23
DTA—SDA0—-24
RST—CE0—–27
3、修改程序
ds1302.c的mian函数里有一个ds1302setup()函数 ,用来设置引脚,修改如图:
为树莓派3B添加一个实时时钟DS1302_第1张图片
这里的14,30,10引脚号是wPi的编号不要弄错了
为树莓派3B添加一个实时时钟DS1302_第2张图片
在wiringPi/examples目录下有ds1302.c文件 在wiringPi/examples目录下执行make ds1302即可生产可执行文件ds1302
4、测试
4.1 执行sudo ./ds1302 -rtest
显示:
这里写图片描述
说明一切正常,否者请检查连接是否正确
4.2 sudo ./ds1302 -sdsc 即可将系统时间写进ds1302模块中去
4.3 从DS模块读取时间
执行sudo ./ds1302
为树莓派3B添加一个实时时钟DS1302_第3张图片
4.4 从DS模块读取时间来设置系统的时间
sudo ./ds1302 -slc
5、获取当地时间 (以上获取的是UTC(Coordinated Universal Time)时间到当前时刻的秒数,要想从该秒数转换成本地时间需要用localtime()函数struct tm *localtime(const time_t *clock),)
修改ds1302.c中的setDSclock()函数
如下:
为树莓派3B添加一个实时时钟DS1302_第4张图片

之后重新编译make ds1302 重新执行以上指令即可获取当地时间了

你可能感兴趣的:(C语言,linux,树莓派)