42 #define CHIP_NAME "SHARP GP2Y1051AU0F"
43 #define MANUFACTURER_NAME "SHARP"
44 #define SUPPLY_VOLTAGE_MIN 4.8f
45 #define SUPPLY_VOLTAGE_MAX 5.2f
46 #define MAX_CURRENT 20.0f
47 #define TEMPERATURE_MIN -10.0f
48 #define TEMPERATURE_MAX 65.0f
49 #define DRIVER_VERSION 1000
73 handle->
debug_print(
"gp2y1051au0f: uart_init is null.\n");
79 handle->
debug_print(
"gp2y1051au0f: uart_deinit is null.\n");
85 handle->
debug_print(
"gp2y1051au0f: uart_read is null.\n");
91 handle->
debug_print(
"gp2y1051au0f: uart_flush is null.\n");
97 handle->
debug_print(
"gp2y1051au0f: delay_ms is null.\n");
104 handle->
debug_print(
"gp2y1051au0f: uart init failed.\n");
136 handle->
debug_print(
"gp2y1051au0f: uart deinit failed.\n");
182 handle->
debug_print(
"gp2y1051au0f: uart flush failed.\n");
187 len = handle->
uart_read((uint8_t *)buf, 14);
190 handle->
debug_print(
"gp2y1051au0f: uart read failed.\n");
196 for (i = 0; i < 14; i++)
198 if ((buf[i] == 0xAA) && ((i + 7) < 14))
200 if (buf[i + 6] != 0xFF)
202 handle->
debug_print(
"gp2y1051au0f: frame is invalid.\n");
214 handle->
debug_print(
"gp2y1051au0f: frame is error.\n");
219 for (i = 1; i < 5; i++)
221 check_sum += buf[offset + i];
223 if ((check_sum & 0xFF) != buf[offset + 5])
225 handle->
debug_print(
"gp2y1051au0f: frame check error.\n");
229 *raw = ((uint16_t)buf[offset + 1]) << 8 | buf[offset + 2];
230 *mg_m3 = (float)(*raw) / 3.5f;
265 handle->
debug_print(
"gp2y1051au0f: uart flush failed.\n");
270 l = handle->
uart_read((uint8_t *)buf, len);
273 handle->
debug_print(
"gp2y1051au0f: uart read failed.\n");
#define SUPPLY_VOLTAGE_MAX
#define MANUFACTURER_NAME
#define SUPPLY_VOLTAGE_MIN
#define CHIP_NAME
chip information definition
driver gp2y1051au0f header file
uint8_t gp2y1051au0f_read(gp2y1051au0f_handle_t *handle, uint16_t *raw, float *mg_m3)
read the data
uint8_t gp2y1051au0f_info(gp2y1051au0f_info_t *info)
get chip's information
uint8_t gp2y1051au0f_init(gp2y1051au0f_handle_t *handle)
initialize the chip
uint8_t gp2y1051au0f_deinit(gp2y1051au0f_handle_t *handle)
close the chip
uint8_t gp2y1051au0f_get_buf(gp2y1051au0f_handle_t *handle, char *buf, uint16_t len, uint32_t ms)
get buffer
gp2y1051au0f handle structure definition
uint8_t(* uart_flush)(void)
void(* delay_ms)(uint32_t ms)
uint8_t(* uart_deinit)(void)
void(* debug_print)(const char *const fmt,...)
uint16_t(* uart_read)(uint8_t *buf, uint16_t len)
uint8_t(* uart_init)(void)
gp2y1051au0f information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v