#[entry]
fn main() -> ! {
let p = Peripherals::take().unwrap();
let gpio0 = p0::Parts::new(p.P0);
let pin: P0_01<Disconnected> = gpio0.p0_01;
// let gpio0_01_again = gpio0.p0_01; // μ€λ₯κ° λ°μνμ¬ μ΄λνμ΅λλ€.
let pin_input: P0_01<Input<Floating>> = pin.into_floating_input();
if pin_input.is_high().unwrap() {
// ...
}
let mut pin_output: P0_01<Output<OpenDrain>> = pin_input
.into_open_drain_output(OpenDrainConfig::Disconnect0Standard1, Level::Low);
pin_output.set_high().unwrap();
// pin_input.is_high(); // μ€λ₯κ° λ°μνμ¬ μ΄λνμ΅λλ€.
let _pin2: P0_02<Output<OpenDrain>> = gpio0
.p0_02
.into_open_drain_output(OpenDrainConfig::Disconnect0Standard1, Level::Low);
let _pin3: P0_03<Output<PushPull>> =
gpio0.p0_03.into_push_pull_output(Level::Low);
loop {}
}
- νμ
Copy
λλ Clone
μ ꡬννμ§ μμΌλ―λ‘ κ°κ° νλμ μΈμ€ν΄μ€λ§ μ‘΄μ¬ν μ μμ΅λλ€. νμ ν¬νΈ ꡬ쑰체 λ°μΌλ‘ μ΄λνλ©΄ μ무λ μ¬μ©ν μ μμ΅λλ€.
- ν ꡬμ±μ λ³κ²½νλ©΄ μ΄μ ν μΈμ€ν΄μ€κ° μ¬μ©λλ―λ‘ μ΄νμ μ΄μ μΈμ€ν΄μ€λ₯Ό κ³μ μ¬μ©ν μ μμ΅λλ€.
- κ° νμ
μ νμ¬ μνλ₯Ό λνλ
λλ€. μλ₯Ό λ€μ΄ μ΄ κ²½μ°μλ GPIO νμ κ΅¬μ± μνμ
λλ€. μ΄λ κ² νλ©΄ μν λ¨Έμ μ΄ νμ
μμ€ν
μΌλ‘ μΈμ½λ©λλ©°, λ¨Όμ μ¬λ°λ₯΄κ² ꡬμ±ν ν νΉμ λ°©μμΌλ‘ νμ μ¬μ©νλλ‘ ν©λλ€. μλͺ»λ μν μ νμ μ»΄νμΌ μκ°μ ν¬μ°©λ©λλ€.
- μ
λ ₯ νμμ
is_high
λ₯Ό νΈμΆνκ³ μΆλ ₯ νμμ set_high
λ₯Ό νΈμΆν μ μμ§λ§ κ·Έ λ°λλ‘λ μ λ©λλ€.
- λ§μ HAL ν¬λ μ΄νΈλ€μ΄ μ΄ ν¨ν΄μ λ°λ¦
λλ€.