38#ifndef DRIVER_HCSR04_H
39#define DRIVER_HCSR04_H
64#ifndef HCSR04_READ_RETRY_TIMES
65 #define HCSR04_READ_RETRY_TIMES 3
128#define DRIVER_HCSR04_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
136#define DRIVER_HCSR04_LINK_TRIG_INIT(HANDLE, FUC) (HANDLE)->trig_init = FUC
144#define DRIVER_HCSR04_LINK_TRIG_DEINIT(HANDLE, FUC) (HANDLE)->trig_deinit = FUC
152#define DRIVER_HCSR04_LINK_TRIG_WRITE(HANDLE, FUC) (HANDLE)->trig_write = FUC
160#define DRIVER_HCSR04_LINK_ECHO_INIT(HANDLE, FUC) (HANDLE)->echo_init = FUC
168#define DRIVER_HCSR04_LINK_ECHO_DEINIT(HANDLE, FUC) (HANDLE)->echo_deinit = FUC
176#define DRIVER_HCSR04_LINK_ECHO_WRITE(HANDLE, FUC) (HANDLE)->echo_read = FUC
184#define DRIVER_HCSR04_LINK_TIMESTAMP_READ(HANDLE, FUC) (HANDLE)->timestamp_read = FUC
192#define DRIVER_HCSR04_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
200#define DRIVER_HCSR04_LINK_DELAY_US(HANDLE, FUC) (HANDLE)->delay_us = FUC
208#define DRIVER_HCSR04_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
uint8_t hcsr04_init(hcsr04_handle_t *handle)
initialize the chip
struct hcsr04_handle_s hcsr04_handle_t
hcsr04 handle structure definition
uint8_t hcsr04_read(hcsr04_handle_t *handle, uint32_t *time_us, float *m)
read the distance
uint8_t hcsr04_info(hcsr04_info_t *info)
get chip's information
uint8_t hcsr04_deinit(hcsr04_handle_t *handle)
close the chip
struct hcsr04_time_s hcsr04_time_t
hcsr04 time structure definition
struct hcsr04_info_s hcsr04_info_t
hcsr04 information structure definition
hcsr04 handle structure definition
void(* delay_ms)(uint32_t ms)
uint8_t(* echo_read)(uint8_t *value)
void(* delay_us)(uint32_t ms)
uint8_t(* echo_deinit)(void)
void(* debug_print)(const char *const fmt,...)
uint8_t(* trig_write)(uint8_t value)
uint8_t(* trig_deinit)(void)
uint8_t(* trig_init)(void)
uint8_t(* timestamp_read)(hcsr04_time_t *time)
uint8_t(* echo_init)(void)
hcsr04 information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v
hcsr04 time structure definition