• esp32-rust-std-examples-blinky


    以下为在 ESP-IDF (FreeRTOS) 上运行的 blinky 示例:

    https://github.com/esp-rs/esp-idf-hal/blob/master/examples/blinky.rs

    1. //! Blinks an LED
    2. //!
    3. //! This assumes that a LED is connected to GPIO4.
    4. //! Depending on your target and the board you are using you should change the pin.
    5. //! If your board doesn't have on-board LEDs don't forget to add an appropriate resistor.
    6. //!
    7. use esp_idf_hal::delay::FreeRtos; // 导入延迟函数的库
    8. use esp_idf_hal::gpio::*; // 导入GPIO库
    9. use esp_idf_hal::peripherals::Peripherals; // 导入外设库
    10. /*
    11. * fn main() -> anyhow::Result<()> 是程序的入口点,也就是程序开始执行的地方。在Rust语言中,每个可执行程序都必须包含一个main函数作为程序的入口。
    12. *
    13. * fn:这是Rust中定义函数的关键字。
    14. * main():函数名为main,这是Rust中约定俗成的用于表示程序入口的函数名。
    15. * -> anyhow::Result<()>:箭头后面的部分表示函数的返回类型。在这里,anyhow::Result<()> 表示这个函数返回一个 Result 类型。anyhow 是一个用于错误处理的库,Result 是一个枚举类型,可以表示操作成功(Ok)或操作失败(Err)。() 表示空元组,即没有特定的值需要返回。所以,这个函数返回一个可能包含成功或失败信息的 Result。
    16. * 在这个特定的例子中,main 函数的返回类型为 Result,表明它可能会返回错误信息,但是由于注释的规定,我们无法在这个上下文中提供详细的错误信息。通常情况下,如果程序执行成功,main 函数会返回一个 Ok(()),如果出现错误,它会返回一个 Err,其中包含了错误的信息。
    17. */
    18. fn main() -> anyhow::Result<()> {
    19. // 链接ESP-IDF所需的补丁
    20. esp_idf_sys::link_patches();
    21. // 初始化外设
    22. let peripherals = Peripherals::take().unwrap();
    23. // 创建一个可输出的引脚驱动实例,将其设置为 GPIO4 引脚的输出模式
    24. let mut led = PinDriver::output(peripherals.pins.gpio4)?;
    25. println!("Hello world!"); // 打印"Hello world!"到终端
    26. // 设置一个每 1000 毫秒即切换 LED 开/关状态的无限循环
    27. loop {
    28. led.set_high()?; // 将LED引脚设置为高电平(LED开启状态)
    29. // 在这里进行延迟,以确保不触发看门狗
    30. FreeRtos::delay_ms(1000); // 延迟1秒
    31. led.set_low()?; // 将LED引脚设置为低电平(LED关闭状态)
    32. FreeRtos::delay_ms(1000); // 延迟1秒
    33. }
    34. }

    更多示例存放在 esp-idf-hal 仓库中:

    https://github.com/esp-rs/esp-idf-hal/

  • 相关阅读:
    高新技术企业认定工作指导
    离线数据仓库第二讲
    【7-创建商城系统的子模块并将修改后的信息使用Git提交到Gitee上】
    linux 服务器类型Apache配置https访问
    水力和水文软件介绍
    企业应用架构研究系列一:业务拆分
    php程序设计的基本原则
    华为Hcia-数通学习(更改策略)
    【OFDM系列5】单输入单输出OFDM(SISO-OFDM)多径信道迫零(ZF)和最小均方误差(MMSE)均衡器原理和公式推导
    修复微信小程序不能获取头像和昵称的bug,微信小程序新版头像昵称API使用
  • 原文地址:https://blog.csdn.net/wwwlzg/article/details/133704763