XFusion API
v1.3.0
载入中...
搜索中...
未找到
xf_main.c
浏览该文件的文档.
1
17
/* ==================== [Includes] ========================================== */
18
19
#include "xf_hal.h"
20
#include "xf_task.h"
21
22
/* ==================== [Defines] =========================================== */
23
24
#define TAG "i2c_master"
25
26
#define DEFAULT_I2C_NUM 1
27
#define DEFAULT_I2C_SCL_IO_NUM 16
28
#define DEFAULT_I2C_SDA_IO_NUM 15
29
#define DEFAULT_I2C_DEV_ADDR 0x23
30
#define DEFAULT_I2C_FREQ 400*1000
31
32
#define TASK_PRIORITY 5
33
#define TASK_DELAY_MS 2000
34
35
/* ==================== [Typedefs] ========================================== */
36
37
/* ==================== [Static Prototypes] ================================= */
38
39
static
void
i2c_master_init
(
void
);
40
static
void
i2c_task
(
xf_task_t
task
);
41
42
/* ==================== [Static Variables] ================================== */
43
44
/* ==================== [Macros] ============================================ */
45
46
/* ==================== [Global Functions] ================================== */
47
48
void
xf_main
(
void
)
49
{
50
i2c_master_init
();
51
xf_ttask_create_loop
(
i2c_task
, NULL,
TASK_PRIORITY
,
TASK_DELAY_MS
);
52
}
53
54
/* ==================== [Static Functions] ================================== */
55
56
static
void
i2c_master_init
(
void
)
57
{
58
xf_hal_i2c_init
(
DEFAULT_I2C_NUM
,
XF_HAL_I2C_HOSTS_MASTER
,
DEFAULT_I2C_FREQ
);
59
xf_hal_i2c_set_gpio
(
DEFAULT_I2C_NUM
,
60
DEFAULT_I2C_SCL_IO_NUM
,
DEFAULT_I2C_SDA_IO_NUM
);
61
xf_hal_i2c_set_address
(
DEFAULT_I2C_NUM
,
DEFAULT_I2C_DEV_ADDR
);
62
xf_hal_i2c_enable
(
DEFAULT_I2C_NUM
);
63
}
64
65
static
void
i2c_task
(
xf_task_t
task
)
66
{
67
UNUSED
(
task
);
68
int
ret = 0;
69
uint8_t wbuf[] =
"I M Master"
;
70
uint8_t rbuf[32] = {0};
71
ret =
xf_hal_i2c_write
(
DEFAULT_I2C_NUM
, wbuf,
sizeof
(wbuf), 200);
72
if
(ret < 0) {
73
return
;
74
}
75
XF_LOGI
(
TAG
,
"WRITE CMPL"
);
76
ret =
xf_hal_i2c_read
(
DEFAULT_I2C_NUM
, rbuf,
sizeof
(rbuf), 2000);
77
if
(ret < 0) {
78
return
;
79
}
80
XF_LOGI
(
TAG
,
"READ CMPL:%s"
, rbuf);
81
}
82
xf_main
void xf_main(void)
Definition
xf_main.c:28
xf_hal_i2c_set_gpio
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_hal_i2c_set_address
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_hal_i2c_init
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
xf_hal_i2c_write
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
xf_hal_i2c_read
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_hal_i2c_enable
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_MASTER
@ XF_HAL_I2C_HOSTS_MASTER
Definition
xf_hal_i2c.h:63
xf_ttask_create_loop
static xf_task_t xf_ttask_create_loop(xf_task_func_t func, void *func_arg, uint16_t priority, uint32_t delay_ms)
在默认的任务管理下,创建 ttask 循环任务。
Definition
xf_task.h:162
TAG
#define TAG
Definition
xf_main.c:24
TASK_DELAY_MS
#define TASK_DELAY_MS
Definition
xf_main.c:27
TASK_PRIORITY
#define TASK_PRIORITY
Definition
xf_main.c:26
DEFAULT_I2C_SCL_IO_NUM
#define DEFAULT_I2C_SCL_IO_NUM
Definition
xf_main.c:27
DEFAULT_I2C_FREQ
#define DEFAULT_I2C_FREQ
Definition
xf_main.c:30
i2c_task
static void i2c_task(xf_task_t task)
Definition
xf_main.c:65
i2c_master_init
static void i2c_master_init(void)
Definition
xf_main.c:56
DEFAULT_I2C_NUM
#define DEFAULT_I2C_NUM
Definition
xf_main.c:26
DEFAULT_I2C_SDA_IO_NUM
#define DEFAULT_I2C_SDA_IO_NUM
Definition
xf_main.c:28
DEFAULT_I2C_DEV_ADDR
#define DEFAULT_I2C_DEV_ADDR
Definition
xf_main.c:29
task
static void task(xf_task_t task)
Definition
xf_main.c:45
XF_LOGI
#define XF_LOGI(tag, format,...)
Definition
xf_log_uitls.h:44
xf_task_t
void * xf_task_t
任务句柄。
Definition
xf_task_manager.h:40
UNUSED
#define UNUSED(_x)
Definition
xf_template_source_detail.c:333
examples
peripherals
i2c
i2c_master_half_duplex
main
xf_main.c
生成于 2025年 一月 21日 星期二 17:25:09 , 为 XFusion API使用
1.9.8