LibDriver WT588E02B
Loading...
Searching...
No Matches
driver_wt588e02b.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_WT588E02B_H
38#define DRIVER_WT588E02B_H
39
40#include <stdio.h>
41#include <stdint.h>
42#include <string.h>
43
44#ifdef __cplusplus
45extern "C"{
46#endif
47
53
58
67
71typedef struct wt588e02b_handle_s
72{
73 uint8_t (*sclk_gpio_init)(void);
74 uint8_t (*sclk_gpio_deinit)(void);
75 uint8_t (*sclk_gpio_write)(uint8_t data);
76 uint8_t (*mosi_gpio_init)(void);
77 uint8_t (*mosi_gpio_deinit)(void);
78 uint8_t (*mosi_gpio_write)(uint8_t data);
79 uint8_t (*miso_gpio_init)(void);
80 uint8_t (*miso_gpio_deinit)(void);
81 uint8_t (*miso_gpio_read)(uint8_t *data);
82 uint8_t (*cs_gpio_init)(void);
83 uint8_t (*cs_gpio_deinit)(void);
84 uint8_t (*cs_gpio_write)(uint8_t data);
85 void (*delay_ms)(uint32_t ms);
86 void (*delay_us)(uint32_t us);
87 void (*debug_print)(const char *const fmt, ...);
88 uint8_t (*bin_read_init)(char *name, uint32_t *size);
89 uint8_t (*bin_read)(uint32_t addr, uint16_t size, uint8_t *buffer);
90 uint8_t (*bin_read_deinit)(void);
91 uint8_t inited;
92 uint16_t sum;
93 uint8_t buf[512];
95
111
115
122
129#define DRIVER_WT588E02B_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
130
137#define DRIVER_WT588E02B_LINK_SCLK_GPIO_INIT(HANDLE, FUC) (HANDLE)->sclk_gpio_init = FUC
138
145#define DRIVER_WT588E02B_LINK_SCLK_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->sclk_gpio_deinit = FUC
146
153#define DRIVER_WT588E02B_LINK_SCLK_GPIO_WRITE(HANDLE, FUC) (HANDLE)->sclk_gpio_write = FUC
154
161#define DRIVER_WT588E02B_LINK_MOSI_GPIO_INIT(HANDLE, FUC) (HANDLE)->mosi_gpio_init = FUC
162
169#define DRIVER_WT588E02B_LINK_MOSI_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->mosi_gpio_deinit = FUC
170
177#define DRIVER_WT588E02B_LINK_MOSI_GPIO_WRITE(HANDLE, FUC) (HANDLE)->mosi_gpio_write = FUC
178
185#define DRIVER_WT588E02B_LINK_MISO_GPIO_INIT(HANDLE, FUC) (HANDLE)->miso_gpio_init = FUC
186
193#define DRIVER_WT588E02B_LINK_MISO_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->miso_gpio_deinit = FUC
194
201#define DRIVER_WT588E02B_LINK_MISO_GPIO_READ(HANDLE, FUC) (HANDLE)->miso_gpio_read = FUC
202
209#define DRIVER_WT588E02B_LINK_CS_GPIO_INIT(HANDLE, FUC) (HANDLE)->cs_gpio_init = FUC
210
217#define DRIVER_WT588E02B_LINK_CS_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->cs_gpio_deinit = FUC
218
225#define DRIVER_WT588E02B_LINK_CS_GPIO_WRITE(HANDLE, FUC) (HANDLE)->cs_gpio_write = FUC
226
233#define DRIVER_WT588E02B_LINK_BIN_READ_INIT(HANDLE, FUC) (HANDLE)->bin_read_init = FUC
234
241#define DRIVER_WT588E02B_LINK_BIN_READ(HANDLE, FUC) (HANDLE)->bin_read = FUC
242
249#define DRIVER_WT588E02B_LINK_BIN_READ_DEINIT(HANDLE, FUC) (HANDLE)->bin_read_deinit = FUC
250
257#define DRIVER_WT588E02B_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
258
265#define DRIVER_WT588E02B_LINK_DELAY_US(HANDLE, FUC) (HANDLE)->delay_us = FUC
266
273#define DRIVER_WT588E02B_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
274
278
285
294uint8_t wt588e02b_info(wt588e02b_info_t *info);
295
306uint8_t wt588e02b_init(wt588e02b_handle_t *handle);
307
318uint8_t wt588e02b_deinit(wt588e02b_handle_t *handle);
319
332
346uint8_t wt588e02b_play(wt588e02b_handle_t *handle, uint8_t ind);
347
358uint8_t wt588e02b_stop(wt588e02b_handle_t *handle);
359
372uint8_t wt588e02b_set_vol(wt588e02b_handle_t *handle, uint8_t vol);
373
387uint8_t wt588e02b_play_loop(wt588e02b_handle_t *handle, uint8_t ind);
388
402uint8_t wt588e02b_play_loop_advance(wt588e02b_handle_t *handle, uint8_t ind);
403
416
433uint8_t wt588e02b_play_list(wt588e02b_handle_t *handle, uint8_t *list, uint8_t len);
434
449uint8_t wt588e02b_update(wt588e02b_handle_t *handle, uint8_t ind, char *path);
450
464uint8_t wt588e02b_update_all(wt588e02b_handle_t *handle, char *path);
465
469
476
480
494uint8_t wt588e02b_set_reg(wt588e02b_handle_t *handle, uint8_t *buf, uint16_t len, uint32_t us);
495
509uint8_t wt588e02b_get_reg(wt588e02b_handle_t *handle, uint8_t *buf, uint16_t len, uint32_t us);
510
514
518
519#ifdef __cplusplus
520}
521#endif
522
523#endif
struct wt588e02b_info_s wt588e02b_info_t
wt588e02b information structure definition
uint8_t wt588e02b_update(wt588e02b_handle_t *handle, uint8_t ind, char *path)
update audio
struct wt588e02b_handle_s wt588e02b_handle_t
wt588e02b handle structure definition
uint8_t wt588e02b_play(wt588e02b_handle_t *handle, uint8_t ind)
play audio
uint8_t wt588e02b_play_loop(wt588e02b_handle_t *handle, uint8_t ind)
play loop
uint8_t wt588e02b_info(wt588e02b_info_t *info)
get chip's information
uint8_t wt588e02b_deinit(wt588e02b_handle_t *handle)
deinit the chip
uint8_t wt588e02b_check_busy(wt588e02b_handle_t *handle, wt588e02b_bool_t *enable)
check chip busy
uint8_t wt588e02b_play_loop_advance(wt588e02b_handle_t *handle, uint8_t ind)
play loop advance
wt588e02b_bool_t
wt588e02b bool enumeration definition
uint8_t wt588e02b_set_vol(wt588e02b_handle_t *handle, uint8_t vol)
set the volume
uint8_t wt588e02b_init(wt588e02b_handle_t *handle)
initialize the chip
uint8_t wt588e02b_play_loop_all(wt588e02b_handle_t *handle)
play loop all
uint8_t wt588e02b_play_list(wt588e02b_handle_t *handle, uint8_t *list, uint8_t len)
play list
uint8_t wt588e02b_update_all(wt588e02b_handle_t *handle, char *path)
update all audio
uint8_t wt588e02b_stop(wt588e02b_handle_t *handle)
stop audio
@ WT588E02B_BOOL_FALSE
@ WT588E02B_BOOL_TRUE
uint8_t wt588e02b_get_reg(wt588e02b_handle_t *handle, uint8_t *buf, uint16_t len, uint32_t us)
get the chip register
uint8_t wt588e02b_set_reg(wt588e02b_handle_t *handle, uint8_t *buf, uint16_t len, uint32_t us)
set the chip register
wt588e02b handle structure definition
uint8_t(* mosi_gpio_write)(uint8_t data)
uint8_t(* mosi_gpio_deinit)(void)
uint8_t(* mosi_gpio_init)(void)
uint8_t(* miso_gpio_read)(uint8_t *data)
void(* delay_ms)(uint32_t ms)
uint8_t(* sclk_gpio_deinit)(void)
uint8_t(* bin_read_init)(char *name, uint32_t *size)
uint8_t(* cs_gpio_deinit)(void)
uint8_t(* cs_gpio_write)(uint8_t data)
uint8_t(* sclk_gpio_write)(uint8_t data)
void(* debug_print)(const char *const fmt,...)
uint8_t(* bin_read)(uint32_t addr, uint16_t size, uint8_t *buffer)
void(* delay_us)(uint32_t us)
uint8_t(* cs_gpio_init)(void)
uint8_t(* sclk_gpio_init)(void)
uint8_t(* miso_gpio_init)(void)
uint8_t(* bin_read_deinit)(void)
uint8_t(* miso_gpio_deinit)(void)
wt588e02b information structure definition