XFusion API v1.3.0
载入中...
搜索中...
未找到
examples/peripherals/i2c/i2c_self/main/xf_main.c

xf_hal i2c 自测示例。

1
17/* ==================== [Includes] ========================================== */
18
19#include "xf_hal.h"
20
21/* ==================== [Defines] =========================================== */
22
23#define TAG "i2c_self"
24
25#define DEFAULT_I2C_MASTER_NUM 1
26#define DEFAULT_I2C_MASTER_SCL_IO_NUM 19
27#define DEFAULT_I2C_MASTER_SDA_IO_NUM 18
28#define DEFAULT_I2C_MASTER_DEV_ADDR 0x23
29#define DEFAULT_I2C_MASTER_FREQ 400*1000
30
31#define DEFAULT_I2C_SLAVE_NUM 0
32#define DEFAULT_I2C_SLAVE_SCL_IO_NUM 5
33#define DEFAULT_I2C_SLAVE_SDA_IO_NUM 4
34#define DEFAULT_I2C_SLAVE_DEV_ADDR 0x23
35#define DEFAULT_I2C_SLAVE_FREQ 400*1000
36
37/* ==================== [Typedefs] ========================================== */
38
39/* ==================== [Static Prototypes] ================================= */
40
41static void i2c_slave_init(void);
42static void i2c_master_init(void);
43static void i2c_echo(void);
44
45/* ==================== [Static Variables] ================================== */
46
47/* ==================== [Macros] ============================================ */
48
49/* ==================== [Global Functions] ================================== */
50
51void xf_main(void)
52{
55 i2c_echo();
56}
57
58/* ==================== [Static Functions] ================================== */
59
60static void i2c_slave_init(void)
61{
67}
68
69static void i2c_master_init(void)
70{
76}
77
78static void i2c_echo(void)
79{
80 uint8_t msg[] = "hello";
81 uint8_t recv[sizeof(msg)] = {0};
82 xf_hal_i2c_write(DEFAULT_I2C_MASTER_NUM, msg, sizeof(msg), 0);
83 xf_hal_i2c_read(DEFAULT_I2C_SLAVE_NUM, recv, sizeof(msg), 0);
84 XF_LOGI(TAG, "recv:%s", recv);
85}
86
void xf_main(void)
Definition xf_main.c:28
xf_err_t xf_hal_i2c_set_gpio(xf_i2c_num_t i2c_num, xf_gpio_num_t scl_num, xf_gpio_num_t sda_num)
i2c 设置 gpio。
Definition xf_hal_i2c.c:142
xf_err_t xf_hal_i2c_set_address(xf_i2c_num_t i2c_num, uint16_t address)
i2c 设置 i2c 从机地址。
Definition xf_hal_i2c.c:194
xf_err_t xf_hal_i2c_init(xf_i2c_num_t i2c_num, xf_hal_i2c_hosts_t hosts, uint32_t speed)
i2c 初始化函数。使用 i2c 之前必须要进行初始化。
Definition xf_hal_i2c.c:50
int xf_hal_i2c_write(xf_i2c_num_t i2c_num, const uint8_t *buffer, uint32_t size, uint32_t timeout_ms)
i2c 写入数据。
Definition xf_hal_i2c.c:315
int xf_hal_i2c_read(xf_i2c_num_t i2c_num, uint8_t *buffer, uint32_t size, uint32_t timeout_ms)
i2c 读取数据。
Definition xf_hal_i2c.c:347
xf_err_t xf_hal_i2c_enable(xf_i2c_num_t i2c_num)
i2c 启用函数。i2c 配置好功能后,可以调用 i2c 启用函数进行激活。
Definition xf_hal_i2c.c:92
@ XF_HAL_I2C_HOSTS_SLAVE
Definition xf_hal_i2c.h:64
@ XF_HAL_I2C_HOSTS_MASTER
Definition xf_hal_i2c.h:63
#define TAG
Definition xf_main.c:24
static void i2c_master_init(void)
Definition xf_main.c:56
#define DEFAULT_I2C_SLAVE_NUM
Definition xf_main.c:31
#define DEFAULT_I2C_MASTER_DEV_ADDR
Definition xf_main.c:28
#define DEFAULT_I2C_SLAVE_SCL_IO_NUM
Definition xf_main.c:32
#define DEFAULT_I2C_MASTER_FREQ
Definition xf_main.c:29
#define DEFAULT_I2C_MASTER_NUM
Definition xf_main.c:25
static void i2c_echo(void)
Definition xf_main.c:78
#define DEFAULT_I2C_SLAVE_FREQ
Definition xf_main.c:35
static void i2c_slave_init(void)
Definition xf_main.c:60
#define DEFAULT_I2C_MASTER_SCL_IO_NUM
Definition xf_main.c:26
#define DEFAULT_I2C_SLAVE_SDA_IO_NUM
Definition xf_main.c:33
#define DEFAULT_I2C_SLAVE_DEV_ADDR
Definition xf_main.c:34
#define DEFAULT_I2C_MASTER_SDA_IO_NUM
Definition xf_main.c:27
#define XF_LOGI(tag, format,...)