https://github.com/cmst0us/u8g2kit
Swift Package For U8g2
https://github.com/cmst0us/u8g2kit
display oled swift swift-package u8g2
Last synced: 4 months ago
JSON representation
Swift Package For U8g2
- Host: GitHub
- URL: https://github.com/cmst0us/u8g2kit
- Owner: CmST0us
- License: mit
- Created: 2024-03-25T13:57:19.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-26T15:22:47.000Z (5 months ago)
- Last Synced: 2025-05-26T16:44:49.305Z (5 months ago)
- Topics: display, oled, swift, swift-package, u8g2
- Language: C
- Homepage:
- Size: 12 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# U8g2Kit
[](https://swift.org)
[](LICENSE)U8g2Kit 是一个用于 Swift 的 U8g2 图形库封装,它提供了简单易用的 API 来驱动各种 OLED 显示屏。本项目基于著名的 [U8g2](https://github.com/olikraus/u8g2) 库,并添加了 Swift 的原生支持。
## ✨ 特性
- 🚀 完整的 U8g2 功能支持
- 📱 支持多种 OLED 显示屏
- 🎮 内置 SDL2 模拟器,方便开发和调试
- 🛠 简单易用的 Swift API
- 📦 Swift Package Manager 支持## 📋 系统要求
- Swift 5.10 或更高版本
- Linux
- 支持 SDL2 的系统环境## 📦 安装
### Swift Package Manager
在您的 `Package.swift` 文件中添加以下依赖:
```swift
dependencies: [
.package(url: "https://github.com/CmST0us/U8g2Kit.git", branch: "main")
]
```## 🚀 快速开始
```swift
import U8g2Kit
import CU8g2// 创建自定义驱动
class MyDriver: Driver {
init() {
// 使用 u8g2_SetupBuffer_SDL_256x128 作为示例
super.init(u8g2_SetupBuffer_SDL_256x128, &u8g2_cb_r0)
}
}// 初始化驱动
let driver = MyDriver()// 初始化显示
driver.withUnsafeU8g2 { u8g2 in
u8g2_InitDisplay(u8g2)
}// 绘制内容
driver.withUnsafeU8x8 { u8x8 in
u8x8_ClearDisplay(u8x8)
u8x8_SetFont(u8x8, u8x8_font_7x14_1x2_f)
u8x8_Draw1x2String(u8x8, 0, 0, "Hello World!")
u8x8_Draw2x2String(u8x8, 0, 4, "Hello World!")
}
```## 🎮 模拟器
U8g2Kit 包含一个基于 SDL2 的模拟器,可以帮助您在开发过程中进行调试。模拟器提供了一个 256x128 的显示窗口,并支持基本的显示功能:
```swift
import U8g2Kit
import CU8g2
import SDL2// 创建 SDL2 驱动
class SDL2Driver: Driver {
init() {
super.init(u8g2_SetupBuffer_SDL_256x128, &u8g2_cb_r0)
}
}// 初始化并运行模拟器
let driver = SDL2Driver()
driver.withUnsafeU8g2 { u8g2 in
u8g2_InitDisplay(u8g2)
}// 在模拟器中绘制内容
driver.withUnsafeU8x8 { u8x8 in
u8x8_ClearDisplay(u8x8)
u8x8_SetFont(u8x8, u8x8_font_7x14_1x2_f)
u8x8_Draw1x2String(u8x8, 0, 0, "Hello World!")
u8x8_Draw2x2String(u8x8, 0, 4, "Hello World!")
}
```## 📚 文档
详细的 API 文档请参考 [Documentation](docs/API.md)。
## 🤝 贡献
欢迎提交 Pull Request 和 Issue!
## 📄 许可证
本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件。