rust裸机开发esp32c3

尽意
2025-04-30 / 0 评论 / 8 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2025年04月30日,已超过18天没有更新,若内容或图片失效,请留言反馈。

安装esp-generate

# 安装新版生成工具
cargo install esp-generate
# 安装依赖工具链
cargo install espup
espup install

激活环境变量

source $HOME/export-esp.sh  # linux

Windows用户默认在C:\Users\HOME目录下有一个 export-esp.ps1文件,双击执行激活环境变量

使用esp-genertate 创建新项目

esp-generate --chip=esp32c3 demo

ma2qyocg.png
这个项目是个hello world项目,不需要额外的配置,接着按s创建项目

添加依赖

在Cargo.toml的[dependencies]添加println依赖

esp-println = { version = "0.13.1",features = ["esp32c3","log"] }

点亮LED

修改mian.rs点亮一个led

#![no_std]
#![no_main]

use esp_hal::clock::CpuClock;
use esp_hal::gpio::{Level, Output, OutputConfig};
use esp_hal::main;
use esp_hal::time::{Duration, Instant};
use esp_println::println;

#[panic_handler]
fn panic(_: &core::panic::PanicInfo) -> ! {
    loop {}
}

#[main]
fn main() -> ! {
    // generator version: 0.3.1

    let config = esp_hal::Config::default().with_cpu_clock(CpuClock::max());
    let peripherals = esp_hal::init(config);
    let mut led = Output::new(peripherals.GPIO9, Level::Low, OutputConfig::default());

    let mut count = 0;
    loop {
        let delay_start = Instant::now();
        led.toggle();
        println!("第{count}次数改变led状态");
        count+=1;
        while delay_start.elapsed() < Duration::from_millis(1500) {}
    }

    // for inspiration have a look at the examples at https://github.com/esp-rs/esp-hal/tree/esp-hal-v1.0.0-beta.0/examples/src/bin
}

成功打印日志
ma2r5nrh.png

0

评论 (0)

取消