HAL 크레이트들
다양한 주변 장치에 대한 래퍼를 제공하는 HAL 크레이트들이 있습니다. 이 크레이트들은 일반적으로 embedded-hal의 트레잇을 구현합니다.
#![no_main]
#![no_std]
extern crate panic_halt as _;
use cortex_m_rt::entry;
use nrf52833_hal::gpio::{p0, Level};
use nrf52833_hal::pac::Peripherals;
use nrf52833_hal::prelude::*;
#[entry]
fn main() -> ! {
let p = Peripherals::take().unwrap();
// GPIO 포트 0의 HAL 래퍼를 만듭니다.
let gpio0 = p0::Parts::new(p.P0);
// GPIO 0 핀 21 및 28을 푸시-풀 출력으로 구성합니다.
let mut col1 = gpio0.p0_28.into_push_pull_output(Level::High);
let mut row1 = gpio0.p0_21.into_push_pull_output(Level::Low);
// 핀 28을 낮게, 핀 21을 높게 설정하여 LED를 켭니다.
col1.set_low().unwrap();
row1.set_high().unwrap();
loop {}
}
set_low및set_high는embedded_halOutputPin트레잇의 메서드입니다.- 다양한 STM32, GD32, nRF, NXP, MSP430, AVR, PIC 마이크로컨트롤러를 비롯한 많은 Cortex-M 및 RISC-V 기기를 위한 HAL 크레이트가 있습니다
아래 명령어로 예제 코드를 실행하세요.
cargo embed --bin hal