Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eziopan/lcd1602-driver
https://github.com/eziopan/lcd1602-driver
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/eziopan/lcd1602-driver
- Owner: eZioPan
- Created: 2023-06-06T09:55:26.000Z (over 1 year ago)
- Default Branch: latest
- Last Pushed: 2024-02-05T09:42:15.000Z (11 months ago)
- Last Synced: 2024-10-11T21:19:50.689Z (3 months ago)
- Language: Rust
- Size: 127 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# LCD1602 Driver
[![crates.io](https://img.shields.io/crates/v/lcd1602-driver.svg)](https://crates.io/crates/lcd1602-driver)
[![docs.rs](https://docs.rs/lcd1602-driver/badge.svg)](https://docs.rs/lcd1602-driver)An embedded-hal based driver for the LCD1602 display
### INFO
The most common functions have been implemented, but this crate is still in a **very early stage** of development, so the API and functionality may change.
## Features
- Support both parallel interface, and I2C adapter board interface
- Covers every(?) instruction of the LCD1602
- 4 Pin / 8 Pin mode
- 1 line / 2 line display
- left to right / right to left writing
- Offset display window
- Read busy flag
- Read/write DDRAM and CGRAM
- Set cursor show/hide, set cursor blink or not
- And other functions directly provided by the LCD1602 instructions
- All instructions are sent after reading the busy flag for the efficient execution
- Note: According to the LCD1602 specification, the first few instructions of the initialization process must wait for a specific amount of time
- Simulates the state of the LCD1602 in the MCU's memory to reduce unnecessary reads from the LCD1602 memory
- Some commonly used functionalities
- Initialize LCD via Builder pattern
- Write strings at the current position
- Write strings at a specific position represented by (x,y) coordinates
- Offset cursor position relatively (represented by (x,y) coordinates)
- Offset display window to a specific position
- Write custom character graph represented by an array to a specific position in CGRAM
- Read custom characters at a specific position in CGRAM
- Toggle the display of the entire display on/off
- Some simple animation effects
- Delay execution (microseconds/milliseconds)
- Full-screen blinking (endless/specific number of times)
- Typewriter-style string display
- Split-flap-style string display (one by one/simultaneously)
- And more...## Examples
See [examples/demo_with_stm32f411](https://github.com/eZioPan/lcd1602-driver/tree/latest/examples/demo_with_stm32f411)
## CHANGELOG
### v0.1.0
- First Release
### v0.2.0
- Upgrade to embedded-hal 1.0
- Add I2C adapter board support
- Simplify codebase