近年来,RUST成为了嵌入式编程的热门语言,本文通过实现(1)LED闪灯,以及(2)在console(终端)实现“Hello Rust World”两项功能来完成实操的入门。
一、前期准备
Arduino板是基于AVR控制器的一类板卡总称。为了用RUST对Arduino板卡进行编程,我们需要安装特定的build工具,默认已经安装rustup和XCode tools的前提下,需要通过下列命令行进行安装nightly compiler:
rustup toolchain install nightly
然后安装avr相关的工具:
brew tap osx-cross/avr
brew install avr-gcc avrdude
avr-gcc是一个基于gcc的用于AVR控制器的编译器,avrdude是烧录(flashing)程序用的。
针对RUST编程,需要通过下列命令安装ravedude(基于avedude,所以得先安装avedude之后再安装ravedude),即RUST版的avedude
cargo +stable install ravedude
以上工作完成后,编程环境就搭建好了。
二、RUST编程
基于arduino的基本crate是avr-hal,所以需要利用avr-hal创建工程工作区:
mkdir helloworld
cd helloworld
cargo install cargo-generate
cargo generate --git https://github.com/Rahix/avr-hal-template.git
之后在console会弹出对话框,对项目名称,arduino板卡进行选择(我的Mega 2560),回车确认!
以上工作完成之后,就会在helloworld文件夹里创建默认的工程文件:
可以进入main.rs进行查看相应代码:
以上代码实现了LED闪灯操作。
在终端运行
cargo run
即可在Arduino板卡上看到LED闪烁。
将相应地方增加以下两行代码即可实现在每次LED闪烁时打印一条“Hello, Rust world!”
let mut serial = arduino_hal::default_serial!(dp, pins, 57600);
ufmt::uwriteln!(&mut serial, "Hello, Rust world!").unwrap();
最终效果如下:
在终端运行
cargo run
即可实现LED闪烁,并在终端显示“Hello, Rust world!”