3个版本
0.1.5 | 2023年11月4日 |
---|---|
0.1.4 | 2023年11月4日 |
0.1.3 | 2023年11月4日 |
0.1.2 |
|
0.1.1 |
|
#376 在 嵌入式开发
每月 24 次下载
15KB
162 行
Gihex HC-SR04
简介
这是一个用于访问HC-SR04超声波传感器的库。这个库受到 hc-sr04
的启发。
有关如何使用此库的更多详细信息,请参阅 示例
。
功能
- 测量距离。
- 获取最后返回超声波波形的持续时间
- 设置环境温度进行补偿。仅在启用功能
temperature
或humidity
时可用。 - 设置环境湿度进行补偿。仅在启用功能
humidity
时可用。
如何使用?
要使用此库,必须执行以下操作,例如
- 使用
RAISING
和FAILING
触发器实现外部中断 (EXTI
) 到引脚echo
(连接到HC-SR04传感器引脚的微控制器引脚)。
let mut echo_pin = gpioa.pa3.into_pull_down_input(&mut gpioa.crl);
echo_pin.make_interrupt_source(&mut afio);
let mut exti = ctx.device.EXTI;
echo_pin.enable_interrupt(&mut exti);
echo_pin.trigger_on_edge(&mut exti, Edge::RisingFalling);
- 创建一个实现
us_timer::TickerUs
特性的对象。此对象用于计数滴答数。
use stm32f1xx_hal::timer::{CounterUs, Instance};
pub struct MyCounter<TIM> {
counter: CounterUs<TIM>,
}
impl<TIM: Instance> MyCounter<TIM> {
fn new(counter: CounterUs<TIM>) -> Self {
Self { counter }
}
}
impl<TIM: Instance> TickerUs for MyCounter<TIM> {
fn get_tick(&self) -> u32 {
self.counter.now().ticks()
}
fn get_frequency(&self) -> u32 {
1_000_000
}
}
- 创建HC-SR04对象并使用它。
let hcsr04 = HcSR04::hc_sr04_new(trig_pin, &mut delay, &mut my_counter);
let distance=hcsr04.get_distance::<f32>(DistanceUnit::MilliMeter);
依赖项
~225KB