I'm writing a small embedded project on the EK-TM4C123G eval board using this driver, using version 0.3.0 the code works fine but I needed the HD44780 struct not to take ownership of Delay so I switched to using the latest commit from the repo.
I have changed the code to using the new syntax but when I compile I get this error:
error[E0599]: no method named `reset` found for enum `core::result::Result<hd44780_driver::HD44780<hd44780_driver::bus::FourBitBus<tm4c123x_hal::gpio::gpioa::PA4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpiod::PD6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC7<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC5<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>>>, hd44780_driver::error::Error>` in the current scope
--> examples/lcd_new.rs:37:9
|
37 | lcd.reset(&mut delay);
| ^^^^^ method not found in `core::result::Result<hd44780_driver::HD44780<hd44780_driver::bus::FourBitBus<tm4c123x_hal::gpio::gpioa::PA4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpiod::PD6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC7<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC5<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>>>, hd44780_driver::error::Error>`
error[E0599]: no method named `clear` found for enum `core::result::Result<hd44780_driver::HD44780<hd44780_driver::bus::FourBitBus<tm4c123x_hal::gpio::gpioa::PA4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpiod::PD6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC7<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC5<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>>>, hd44780_driver::error::Error>` in the current scope
--> examples/lcd_new.rs:38:9
|
38 | lcd.clear(&mut delay);
| ^^^^^ method not found in `core::result::Result<hd44780_driver::HD44780<hd44780_driver::bus::FourBitBus<tm4c123x_hal::gpio::gpioa::PA4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpiod::PD6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC7<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC5<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>>>, hd44780_driver::error::Error>`
error[E0599]: no method named `set_display_mode` found for enum `core::result::Result<hd44780_driver::HD44780<hd44780_driver::bus::FourBitBus<tm4c123x_hal::gpio::gpioa::PA4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpiod::PD6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC7<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC5<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>>>, hd44780_driver::error::Error>` in the current scope
--> examples/lcd_new.rs:40:9
|
40 | lcd.set_display_mode(DisplayMode {
| ^^^^^^^^^^^^^^^^ method not found in `core::result::Result<hd44780_driver::HD44780<hd44780_driver::bus::FourBitBus<tm4c123x_hal::gpio::gpioa::PA4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpiod::PD6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC7<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC5<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>>>, hd44780_driver::error::Error>`
error[E0599]: no method named `write_str` found for enum `core::result::Result<hd44780_driver::HD44780<hd44780_driver::bus::FourBitBus<tm4c123x_hal::gpio::gpioa::PA4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpiod::PD6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC7<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC5<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>>>, hd44780_driver::error::Error>` in the current scope
--> examples/lcd_new.rs:46:9
|
46 | lcd.write_str("HELLO, WORLD", &mut delay);
| ^^^^^^^^^ method not found in `core::result::Result<hd44780_driver::HD44780<hd44780_driver::bus::FourBitBus<tm4c123x_hal::gpio::gpioa::PA4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpiod::PD6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC7<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC5<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>>>, hd44780_driver::error::Error>`
I also tried to unwrap the result, but I got this error:
error[E0599]: no method named `unwrap` found for enum `core::result::Result<hd44780_driver::HD44780<hd44780_driver::bus::FourBitBus<tm4c123x_hal::gpio::gpioa::PA4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpiod::PD6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC7<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC5<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>>>, hd44780_driver::error::Error>` in the current scope
--> examples/lcd_new.rs:36:73
|
36 | let mut lcd = HD44780::new_4bit(rs, en, b4, b5, b6, b7, &mut delay).unwrap();
| ^^^^^^ method not found in `core::result::Result<hd44780_driver::HD44780<hd44780_driver::bus::FourBitBus<tm4c123x_hal::gpio::gpioa::PA4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpiod::PD6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC7<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC6<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC5<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>, tm4c123x_hal::gpio::gpioc::PC4<tm4c123x_hal::gpio::Output<tm4c123x_hal::gpio::PushPull>>>>, hd44780_driver::error::Error>
It seems like this error was caused because the Error struct in src/error.rs does not implement Debug.
I see that in PR #20 this has been fixed. Closing this now.
I'm writing a small embedded project on the EK-TM4C123G eval board using this driver, using version 0.3.0 the code works fine but I needed the
HD44780
struct not to take ownership ofDelay
so I switched to using the latest commit from the repo. I have changed the code to using the new syntax but when I compile I get this error:I also tried to unwrap the result, but I got this error:
Not quite sure how to fix this.