4 releases (2 breaking)
|0.4.0||Sep 15, 2020|
|0.3.0||Feb 21, 2019|
|0.2.1||Oct 17, 2018|
|0.2.0||Aug 8, 2018|
#40 in Embedded development
56 downloads per month
Used in nucleo-f401re
Implementation of the
embedded-hal traits for the HD44780.
Examples for several different boards can be found here
This library aims to keep it simple in that to get started all you will have to do is supply the
HD44780::new function a bunch of pins from your platform that implement the
OutputPin trait for embedded-hal as well as a struct that implements the delay traits
// Pseudo-code: check the HAL crate for your specific device for exact code to get pins / delay // It is recommended to use push/pull output pins, but if your specific LCD device has pull-up resistors // an open/drain output pin should work too let mut delay = Delay::new(); let mut lcd = HD44780::new_4bit( d4.into_push_pull_output(&mut port), // Register Select pin d3.into_push_pull_output(&mut port), // Enable pin d9.into_push_pull_output(&mut port), // d4 d10.into_push_pull_output(&mut port), // d5 d11.into_push_pull_output(&mut port), // d6 d12.into_push_pull_output(&mut port), // d7 &mut delay, ); // Unshift display and set cursor to 0 lcd.reset(&mut delay); // Clear existing characters lcd.clear(&mut delay); // Display the following string lcd.write_str("Hello, world!", &mut delay); // Move the cursor to the second line lcd.set_cursor_pos(40, &mut delay); // Display the following string on the second line lcd.write_str("I'm on line 2!", &mut delay);
- 4-bit & 8-bit modes are supported
- Support for i2c backpacks
- Busy flag support (Waiting for support from embedded-hal to read and write from a pin)
- Non-blocking API
- A more user-friendly API with additional features
- Custom characters
Additional issues as well as pull-requests are welcome.
If you have a platform not yet covered in this repository that is supported by embedded-hal, a pull-request of an example would be awesome!