Back to Browse

Rust 嵌入式系统 - HAL 介绍 (Delay)

244 views
Dec 3, 2025
18:57

Rust 嵌入式首先需要熟悉 Embedded-HAL,最基础的5个模块有 Delay, IO, PWM, I2C, SPI,在 Embedded-HAL v0.2 版本里延迟用的是 Timer,最新 Embedded-HAL v1.0.0 删除 Timer 替换成了 Delay,而串口是在 embedded-io 里面,其他的模块还有 embedded-async,embedded-can,embedded-nb 等。 Rust Embedded-HAL 是由 Rust 嵌入式官方团队维护的,所以质量可以保证,不过 HAL 只是定义接口,具体的实现实在芯片的仓库,例如 nrf-hal,stm32-hal,使用 Embedded-HAL 就可以保证自己的代码是跨平台的,除了系统初始化相关的代码,每个芯片都不一样,例如 STM32 的时钟源配置。 Rust 嵌入式打印信息可以使用 RTT 或者 defmt,但是需要注意 defmt 是延迟打印,所以并不能用来调试,例如没有看见打印信息,并不代表错误就在打印的位置,因为打印会延迟一段时间,所以如果需要实时看见打印信息一般用 RTT 调试打印。 虽然 Rust 编译器会报错安全性问题,但是 Rust 编译器没有报错,并不代表代码没有问题,例如 Rust 嵌入式使用了 Singleton 设计模式,每一种硬件都只能有一个实例,避免在不同的代码位置同时修改硬件配置造成冲突,所以常见的 peripheral.take() 只能调用一次,第二次调用就会 panic。 这个视频只介绍了 Delay,后面视频会介绍其他模块,例如 IO,PWM,I2C,SPI。 GitHub 源码: - BBC Microbit 例程: https://github.com/wuhanstudio/bbc-microbit-v2-rust-embedded-hal - STM32 例程: https://github.com/wuhanstudio/stm32-bluepill-rust-embedded-hal Rust 嵌入式开发合集: https://www.youtube.com/playlist?list=PLlRCv8NaDaU-u1tqvVryAp9ZTb7rS_10Y Rust 嵌入式系统合集: https://www.youtube.com/playlist?list=PLlRCv8NaDaU8XxW7s7M4qfnb-dzwu5Qs9 00:00 Embedded-HAL 模块 03:52 Embedded-HAL 版本区别 05:32 Delay 模块 11:07 RTT 和 Defmt 打印区别 12:18 Rust 嵌入式安全性 (Singleton) 16:51 总结

Download

1 formats

Video Formats

360pmp433.7 MB

Right-click 'Download' and select 'Save Link As' if the file opens in a new tab.

Rust 嵌入式系统 - HAL 介绍 (Delay) | NatokHD