diff --git a/src/main.rs b/src/main.rs index 5447abe..bcc49b1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,6 +7,9 @@ )] #![deny(clippy::large_stack_frames)] +use core::fmt::Write; + +use alloc::str; use esp_hal::{ clock::CpuClock, delay::Delay, @@ -14,6 +17,7 @@ use esp_hal::{ main, spi::master::{Config, Spi}, time::{Duration, Instant, Rate}, + uart::{self, Uart}, }; use esp_backtrace as _; @@ -105,6 +109,61 @@ fn main() -> ! { font_renderer.render(&mut display, "Hello World!", Position::new(70, 220)); + let test_delay = Delay::new(); + + let mut sim_rst = Output::new(peripherals.GPIO15, Level::High, OutputConfig::default()); + let mut pwr_key = Output::new(peripherals.GPIO33, Level::High, OutputConfig::default()); + + pwr_key.set_low(); + test_delay.delay_millis(1_000); + pwr_key.set_high(); + test_delay.delay_millis(1_000); + + sim_rst.set_low(); + test_delay.delay_millis(1_000); + sim_rst.set_high(); + test_delay.delay_millis(1_000); + + pwr_key.set_low(); + test_delay.delay_millis(1_000); + pwr_key.set_high(); + test_delay.delay_millis(1_000); + + log::info!("Ready!"); + test_delay.delay_millis(1_000); + + let mut uart = Uart::new( + peripherals.UART2, + uart::Config::default() + .with_baudrate(115200) + .with_data_bits(uart::DataBits::_8) + .with_parity(uart::Parity::None) + .with_sw_flow_ctrl(uart::SwFlowControl::Disabled), + ) + .unwrap() + .with_rx(peripherals.GPIO16) + .with_tx(peripherals.GPIO17); + + uart.flush().unwrap(); + test_delay.delay_millis(250); + uart.write_str("ATI\r").unwrap(); + uart.flush().unwrap(); + test_delay.delay_millis(250); + log::info!("Wrote command"); + let mut buffer = [0u8; 1024]; + let length = uart.read(&mut buffer).unwrap(); + log::info!("text: {:?}", str::from_utf8(&buffer[..length])); + + uart.flush().unwrap(); + test_delay.delay_millis(250); + uart.write_str("ATI\r").unwrap(); + uart.flush().unwrap(); + test_delay.delay_millis(250); + log::info!("Wrote command"); + let mut buffer = [0u8; 1024]; + let length = uart.read(&mut buffer).unwrap(); + log::info!("text: {:?}", str::from_utf8(&buffer[..length])); + loop { let delay_start = Instant::now();