一个用于 DS1307(以及 DS1302 和 DS3231,但不包括增强功能)I2C 实时时钟的 Swift 库
此库可以配置 DS1307 RTC 时钟,一旦运行,可以检索当前日期和时间。
此组件使用 5V 电源供电,需要一个 32.768kHz 的石英晶体振荡器才能工作。它暴露了一个 I2C 接口,此库使用该接口与其交互。
如果您没有在此 RTC 上使用备用电池,请记住将 Vbatt 连接到 GND。
所有 SwiftyGPIO 支持的板:RaspberryPi、BeagleBone、C.H.I.P. 等...
要使用此库,您需要一个运行 Swift 3.x/4.x 的 Linux ARM 板。
下面的示例将使用 RaspberryPi 2 板,但您可以轻松修改示例以使用其他支持的板,Examples
目录中提供了一个完整的 RaspberryPi2 工作演示项目。
我们需要做的第一件事是从 SwiftyGPIO 获取一个 I2CInterface
实例,并使用它来初始化 DS1307
对象
import SwiftyGPIO
import DS1307
let i2cs = SwiftyGPIO.hardwareI2Cs(for:.RaspberryPi2)!
let i2c = i2cs[0]
let ds = DS1307(i2c)
一旦你有了 DS1307 对象的实例,你可以设置和获取时间作为单独的组件(日、月、年[0-99]、小时、分钟、秒)或者作为一个 Foundation 的 Date 或者一次性获取所有组件
//Properties of DS1307 (all gettable/settable individually):
//year,month,date,hours,minutes,seconds
ds.setTime(hours: 16, minutes: 25, seconds: 00, date: 10, month: 5, year: 17)
ds.start()
var (hours, minutes, seconds, date, month, year) = ds.getTime()
print("\(year)/\(month)/\(date) \(hours):\(minutes):\(seconds)")
sleep(10)
(hours, minutes, seconds, date, month, year) = ds.getTime()
print("\(year)/\(month)/\(date) \(hours):\(minutes):\(seconds)")
//Also available:
//
//ds.setDate(Date())
//let now = ds.getDate()
函数 start()
和 stop()
恢复或暂停时钟。
一个完整的示例可以在 Examples/
下找到
请参考 SwiftyGPIO 自述文件以获取 Swift 安装说明。
一旦您的板运行 Swift,如果您的版本支持 Swift Package Manager,您可以简单地将此库添加为项目的依赖项并使用 swift build
编译
let package = Package(
name: "MyProject",
dependencies: [
.Package(url: "https://github.com/uraimo/DS1307.swift.git", majorVersion: 1),
]
)
目录 Examples
包含使用 SPM 的示例项目,编译它并使用 ./.build/debug/TestRTC
运行示例。
如果不支持 SPM,您需要手动下载该库及其依赖项
wget https://raw.githubusercontent.com/uraimo/DS1307.swift/master/Sources/DS1307.swift https://raw.githubusercontent.com/uraimo/SwiftyGPIO/master/Sources/SwiftyGPIO.swift https://raw.githubusercontent.com/uraimo/SwiftyGPIO/master/Sources/Presets.swift https://raw.githubusercontent.com/uraimo/SwiftyGPIO/master/Sources/I2C.swift https://raw.githubusercontent.com/uraimo/SwiftyGPIO/master/Sources/SunXi.swift
一旦所有文件都已下载,创建一个额外的文件,该文件将包含您的应用程序的代码(例如 main.swift)。当您的代码准备好后,使用以下命令编译它
swiftc *.swift
编译器将创建一个 main 可执行文件。