RUI3 (RAK Unified Interface 3) - RAK4631
udrv_twimst.h
Go to the documentation of this file.
1 
9 #ifndef _UDRV_TWIMST_H_
10 #define _UDRV_TWIMST_H_
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 #include <stdint.h>
17 #include <stddef.h>
18 #include <stdbool.h>
19 
20 typedef enum {
21  UDRV_TWIMST_0 = 0x0,
27 
29  void (*TWIMST_INIT) (udrv_twimst_port port);
31  void (*TWIMST_SETUP_FREQ) (udrv_twimst_port port, uint32_t clk_HZ);
32  int32_t (*TWIMST_WRITE) (udrv_twimst_port port, uint8_t address, uint8_t *data, uint16_t len, bool send_stop);
33  int32_t (*TWIMST_READ) (udrv_twimst_port port, uint8_t address, uint8_t *data, uint16_t len);
34  uint8_t (*TWIMST_SUSPEND) (void);
35  uint8_t (*TWIMST_RESUME) (void);
36 
37 };
38 
41 void udrv_twimst_setup_freq (udrv_twimst_port port, uint32_t clk_Hz);
42 
43 /*
44  * Function udrv_twimst_write
45  * @brief attempts to become twi bus master and write a
46  * series of bytes to a device on the bus
47  * @param address: 7bit i2c device address
48  * @param data: pointer to byte array
49  * @param length: number of bytes in array
50  * Output error code
51  */
52 int32_t udrv_twimst_write (udrv_twimst_port port, uint8_t address, uint8_t *data, uint16_t length, bool send_stop);
53 
54 /*
55  * Function udrv_twimst_read
56  * @brief attempts to become twi bus master and read a
57  * series of bytes from a device on the bus
58  * @param address: 7bit i2c device address
59  * @param data: pointer to byte array
60  * @param length: number of bytes to read into array
61  * Output error code
62  */
63 int32_t udrv_twimst_read (udrv_twimst_port port, uint8_t address, uint8_t *data, uint16_t length);
64 
65 void udrv_twimst_suspend (void);
66 void udrv_twimst_resume (void);
67 
68 #ifdef __cplusplus
69 }
70 #endif
71 
72 #endif //_UDRV_TWIMST_H_
void udrv_twimst_suspend(void)
void(* TWIMST_INIT)(udrv_twimst_port port)
Definition: udrv_twimst.h:29
int32_t udrv_twimst_read(udrv_twimst_port port, uint8_t address, uint8_t *data, uint16_t length)
void udrv_twimst_resume(void)
Definition: udrv_twimst.h:23
Definition: udrv_twimst.h:21
uint8_t(* TWIMST_RESUME)(void)
Definition: udrv_twimst.h:35
void udrv_twimst_deinit(udrv_twimst_port port)
void(* TWIMST_DEINIT)(udrv_twimst_port port)
Definition: udrv_twimst.h:30
Definition: udrv_twimst.h:25
uint8_t(* TWIMST_SUSPEND)(void)
Definition: udrv_twimst.h:34
void(* TWIMST_SETUP_FREQ)(udrv_twimst_port port, uint32_t clk_HZ)
Definition: udrv_twimst.h:31
int32_t udrv_twimst_write(udrv_twimst_port port, uint8_t address, uint8_t *data, uint16_t length, bool send_stop)
void udrv_twimst_init(udrv_twimst_port port)
Definition: udrv_twimst.h:24
udrv_twimst_port
Definition: udrv_twimst.h:20
Definition: udrv_twimst.h:22
uint16_t length
Definition: RAKProtocol.h:71
void udrv_twimst_setup_freq(udrv_twimst_port port, uint32_t clk_Hz)
Definition: udrv_twimst.h:28
int32_t(* TWIMST_READ)(udrv_twimst_port port, uint8_t address, uint8_t *data, uint16_t len)
Definition: udrv_twimst.h:33
int32_t(* TWIMST_WRITE)(udrv_twimst_port port, uint8_t address, uint8_t *data, uint16_t len, bool send_stop)
Definition: udrv_twimst.h:32