西安百度推广网站,网络营销推广方案设计,wordpress简历主题,福州网站建设优化文章目录 说在前面模块详情准备工作开始编译烧录结果 说在前面 esp32版本#xff1a;s3运行环境#xff1a;esp-idf(std)开发环境#xff1a;wsl2LCD模块#xff1a;ST7789V2 240*280 LCDgithub地址#xff1a;这里 模块详情 某宙的esp32s3开发板 某雪的1.69inch LCD模块… 文章目录 说在前面模块详情准备工作开始编译烧录结果 说在前面 esp32版本s3运行环境esp-idf(std)开发环境wsl2LCD模块ST7789V2 240*280 LCDgithub地址这里 模块详情 某宙的esp32s3开发板 某雪的1.69inch LCD模块包含杜邦线
准备工作 开发环境std搭建见上篇 lcd引脚 esp32引脚 引脚连接 除了几个固定的其它可以自行选择这里我的连接如下 LCDesp32(括号里为上图的序号)esp32 gpioVCC3.3V(18)/GNDGND(17)/DINSPI_MOSI(20)GPIO17CLKSPI_CK(19)GPIO18CSSPI_CS(23)GPIO14DCGPIO15(22)GPIO15RSTGPIO16(21)GPIO16BLGPIO13(24)GPIO13
开始
如果从空工程开始的话可以使用code-generatecargo generate esp-rs/esp-idf-template cargo添加依赖[features]
default [std, embassy, esp-idf-svc/native]pio [esp-idf-svc/pio]
std [alloc, esp-idf-svc/binstart, esp-idf-svc/std]
alloc [esp-idf-svc/alloc]
nightly [esp-idf-svc/nightly]
experimental [esp-idf-svc/experimental]
embassy [esp-idf-svc/embassy-sync, esp-idf-svc/critical-section, esp-idf-svc/embassy-time-driver][dependencies]
anyhow {version 1, features [backtrace]}
log { version 0.4, default-features false }
esp-idf-svc { version 0.47.1, default-features false }
embedded-graphics 0.8.1
display-interface-spi 0.4
mipidsi 0.7.1[build-dependencies]
embuild 0.31.3[package.metadata.esp-idf-sys]
esp_idf_tools_install_dir global代码(逻辑基本和树莓派一致)use display_interface_spi::SPIInterfaceNoCS;
use embedded_graphics::{mono_font::{MonoTextStyle, ascii::FONT_10X20}, pixelcolor::Rgb565, text::Text, prelude::*, Drawable};
use esp_idf_svc::hal::{spi, gpio, prelude::*};
use anyhow::Result;fn main() - Result() {// It is necessary to call this function once. Otherwise some patches to the runtime// implemented by esp-idf-sys might not link properly. See https://github.com/esp-rs/esp-idf-template/issues/71esp_idf_svc::sys::link_patches();// Bind the log crate to the ESP Logging facilitiesesp_idf_svc::log::EspLogger::initialize_default();let peripherals Peripherals::take().unwrap();let pins peripherals.pins;test_lcd(peripherals.spi2,pins.gpio13.into(),pins.gpio15.into(),pins.gpio16.into(),pins.gpio18.into(),pins.gpio17.into(),pins.gpio14.into(),)?;Ok(())
}fn test_lcd(spi: spi::SPI2,backlight: gpio::AnyOutputPin,dc: gpio::AnyOutputPin,rst: gpio::AnyOutputPin,sclk: gpio::AnyOutputPin,sdo: gpio::AnyOutputPin,cs: gpio::AnyOutputPin,
) - Result() {let driver spi::SpiDeviceDriver::new_single(spi,sclk,sdo,Option::gpio::AnyIOPin::None,Some(cs),spi::SpiDriverConfig::new().dma(spi::Dma::Disabled),spi::SpiConfig::new().baudrate(20_000_000.into()).data_mode(esp_idf_svc::hal::spi::config::MODE_0),)?;let dc gpio::PinDriver::output(dc)?;let rst gpio::PinDriver::output(rst)?;let mut backlight gpio::PinDriver::output(backlight)?;let di SPIInterfaceNoCS::new(driver, dc);let mut delay esp_idf_svc::hal::delay::Ets;let mut display mipidsi::Builder::st7789(di).with_display_size(240, 280).with_orientation(mipidsi::Orientation::Landscape(true)).init(mut delay, Some(rst)).unwrap();// Textlet text Hello World ^_^;;let text_x 120;let text_y 280 / 2;let text_style MonoTextStyle::new(FONT_10X20, Rgb565::WHITE);// Alternating colorlet colors [Rgb565::RED, Rgb565::GREEN, Rgb565::BLUE];// Clear the display initiallydisplay.clear(colors[0]).unwrap();// Turn on backlightlet _ backlight.set_high();// Draw textText::new(text, Point::new(text_x, text_y), text_style).draw(mut display).unwrap();println!(Draw Hello from Rust!);Ok(())
}编译
编译如果不通过可以参考环境搭建cargo build --target xtensa-esp32s3-espidf烧录
wsl访问usb设备见环境搭建espflash flash target/xtensa-esp32s3-espidf/debug/rs-esp32s3-st7789-demo结果