16#if XF_HAL_SPI_IS_ENABLE
18#include "../kernel/xf_hal_dev.h"
23#define XF_HAL_SPI_TYPE XF_HAL_SPI
40#define XF_HAL_SPI_CHECK(condition, retval, format, ...) \
41 XF_CHECK(condition, retval, TAG, format, ##__VA_ARGS__)
60#if XF_HAL_LOCK_IS_ENABLE
67#if XF_HAL_LOCK_IS_ENABLE
101#if XF_HAL_LOCK_IS_ENABLE
107#if XF_HAL_LOCK_IS_ENABLE
126#if XF_HAL_LOCK_IS_ENABLE
132#if XF_HAL_LOCK_IS_ENABLE
151#if XF_HAL_LOCK_IS_ENABLE
158#if XF_HAL_LOCK_IS_ENABLE
177#if XF_HAL_LOCK_IS_ENABLE
184#if XF_HAL_LOCK_IS_ENABLE
203#if XF_HAL_LOCK_IS_ENABLE
209#if XF_HAL_LOCK_IS_ENABLE
228#if XF_HAL_LOCK_IS_ENABLE
234#if XF_HAL_LOCK_IS_ENABLE
253#if XF_HAL_LOCK_IS_ENABLE
259#if XF_HAL_LOCK_IS_ENABLE
278#if XF_HAL_LOCK_IS_ENABLE
284#if XF_HAL_LOCK_IS_ENABLE
303#if XF_HAL_LOCK_IS_ENABLE
309#if XF_HAL_LOCK_IS_ENABLE
330#if XF_HAL_LOCK_IS_ENABLE
336#if XF_HAL_LOCK_IS_ENABLE
360#if XF_HAL_LOCK_IS_ENABLE
368#if XF_HAL_LOCK_IS_ENABLE
xf_err_t xf_hal_spi_enable(xf_spi_num_t spi_num)
spi 启用函数。
xf_err_t xf_hal_spi_set_mode(xf_spi_num_t spi_num, xf_hal_spi_mode_t mode)
设置 spi 模式。
enum _xf_hal_spi_bit_order_t xf_hal_spi_bit_order_t
spi 传输位顺序。
int xf_hal_spi_write(xf_spi_num_t spi_num, const uint8_t *buffer, uint32_t size, uint32_t timeout_ms)
spi 写入数据函数。
void(* xf_hal_spi_cb_t)(xf_spi_num_t spi_num, void *user_data)
spi 回调函数原型。
xf_err_t xf_hal_spi_set_gpio(xf_spi_num_t spi_num, const xf_hal_spi_gpio_t *spi_gpio)
设置 spi 的输出 io。
xf_err_t xf_hal_spi_disable(xf_spi_num_t spi_num)
spi 禁用函数。
enum _xf_hal_spi_hosts_t xf_hal_spi_hosts_t
spi 的主从模式。
enum _xf_hal_spi_mode_t xf_hal_spi_mode_t
spi 模式。
uint32_t xf_spi_num_t
spi 序号。
xf_err_t xf_hal_spi_set_data_width(xf_spi_num_t spi_num, xf_hal_spi_data_width_t data_width)
设置 spi 的传输数据宽度。
int xf_hal_spi_read(xf_spi_num_t spi_num, uint8_t *buffer, uint32_t size, uint32_t timeout_ms)
spi 读取数据函数。
xf_err_t xf_hal_spi_set_post_cb(xf_spi_num_t spi_num, xf_hal_spi_cb_t callback, void *user_data)
设置 spi 传输后回调。
xf_err_t xf_hal_spi_set_speed(xf_spi_num_t spi_num, uint32_t speed)
设置 spi 的传输速度。
xf_err_t xf_hal_spi_init(xf_spi_num_t spi_num, xf_hal_spi_hosts_t hosts, uint32_t speed)
spi 初始化函数。
enum _xf_hal_spi_data_width_t xf_hal_spi_data_width_t
spi 传输数据位宽。
xf_err_t xf_hal_spi_set_prev_cb(xf_spi_num_t spi_num, xf_hal_spi_cb_t callback, void *user_data)
设置 spi 传输前回调。
xf_err_t xf_hal_spi_set_bit_order(xf_spi_num_t spi_num, xf_hal_spi_bit_order_t bit_order)
设置 spi 输出的字节序。
xf_err_t xf_hal_spi_deinit(xf_spi_num_t spi_num)
spi 反初始化函数。
@ XF_HAL_SPI_CMD_DATA_WIDTH
@ XF_HAL_SPI_CMD_BIT_ORDER
#define XF_ASSERT(condition, retval, tag, format,...)
xfusion 断言宏(条件 不成立 时则输出日志后返回)。
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
int xf_lock_unlock(xf_lock_t lock)
解锁.
int xf_lock_lock(xf_lock_t lock)
锁定直至成功.
xf_hal_spi_callback_t post_cb
xf_hal_spi_callback_t prev_cb
xf_hal_spi_config_t config
xf_err_t xf_hal_driver_close(xf_hal_dev_t *dev)
int xf_hal_driver_read(xf_hal_dev_t *dev, void *buf, size_t count)
xf_err_t xf_hal_driver_ioctl(xf_hal_dev_t *dev, uint32_t cmd, void *config)
xf_err_t xf_hal_driver_open(xf_hal_dev_t *dev, xf_hal_type_t type, uint32_t id)
int xf_hal_driver_write(xf_hal_dev_t *dev, const void *buf, size_t count)
xf_hal_dev_t * xf_hal_device_find(xf_hal_type_t type, uint32_t id)
xf_err_t xf_hal_driver_register(xf_hal_type_t type, xf_hal_flag_t flag, xf_hal_dev_create_t constructor, const xf_driver_ops_t *driver_ops)
xf_hal_dev_t * xf_hal_driver_create(xf_hal_type_t type, uint32_t id)
#define XF_HAL_SPI_CHECK(condition, retval, format,...)
static xf_hal_dev_t * spi_constructor(xf_spi_num_t spi_num)
xf_err_t xf_hal_spi_register(const xf_driver_ops_t *driver_ops)
spi 设备注册。
struct _xf_hal_spi_t xf_hal_spi_t
xf_hal 的 spi(串行外设接口) 设备抽象。
#define XF_LOGE(tag, format,...)