xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_hal_i2s.h 文件参考
#include "xt_hal_internal.h"

浏览该文件的源代码.

结构体

struct  xt_hal_i2s_result
 I2S 传输结果 更多...

宏定义

#define XT_HAL_I2S_INVALID_ID   (0xFF)
#define XT_HAL_I2S_PROTOCOL_S   (0)
#define XT_HAL_I2S_PROTOCOL_W   (2)
#define XT_HAL_I2S_DATA_BITS_S   (2)
#define XT_HAL_I2S_DATA_BITS_W   (2)
#define XT_HAL_I2S_CHANNELS_S   (4)
#define XT_HAL_I2S_CHANNELS_W   (1)
#define XT_HAL_I2S_MCLK_S   (5)
#define XT_HAL_I2S_MCLK_W   (3)
#define XT_HAL_I2S_PROTOCOL_I2S   ((0) << XT_HAL_I2S_PROTOCOL_S)
#define XT_HAL_I2S_PROTOCOL_MSB_JUST   ((1) << XT_HAL_I2S_PROTOCOL_S)
#define XT_HAL_I2S_PROTOCOL_LSB_JUST   ((2) << XT_HAL_I2S_PROTOCOL_S)
#define XT_HAL_I2S_PROTOCOL_PCM   ((3) << XT_HAL_I2S_PROTOCOL_S)
#define XT_HAL_I2S_DATA_BITS_8   ((0) << XT_HAL_I2S_DATA_BITS_S)
#define XT_HAL_I2S_DATA_BITS_16   ((1) << XT_HAL_I2S_DATA_BITS_S)
#define XT_HAL_I2S_DATA_BITS_24   ((2) << XT_HAL_I2S_DATA_BITS_S)
#define XT_HAL_I2S_DATA_BITS_32   ((3) << XT_HAL_I2S_DATA_BITS_S)
#define XT_HAL_I2S_CHANNELS_MONO   ((0) << XT_HAL_I2S_CHANNELS_S)
#define XT_HAL_I2S_CHANNELS_STEREO   ((1) << XT_HAL_I2S_CHANNELS_S)
#define XT_HAL_I2S_MCLK_64FS   ((0) << XT_HAL_I2S_MCLK_S)
#define XT_HAL_I2S_MCLK_128FS   ((1) << XT_HAL_I2S_MCLK_S)
#define XT_HAL_I2S_MCLK_256FS   ((2) << XT_HAL_I2S_MCLK_S)
#define XT_HAL_I2S_MCLK_384FS   ((3) << XT_HAL_I2S_MCLK_S)
#define XT_HAL_I2S_MCLK_512FS   ((4) << XT_HAL_I2S_MCLK_S)

类型定义

typedef void(* xt_hal_i2s_cb_t) (uint8_t i2s_id, uint32_t event_id)

枚举

enum  xt_hal_i2s_event_id { XT_HAL_I2S_EVENT_DONE = 0x00 , XT_HAL_I2S_EVENT_BATCH_DONE , XT_HAL_I2S_EVENT_ERROR }

函数

xt_err_t xt_hal_i2sm_setup (uint8_t i2s_id, uint32_t mode, uint32_t sample_rate_hz, uint8_t mck_pin, uint8_t sck_pin, uint8_t ws_pin, uint8_t sd_tx_pin, uint8_t sd_rx_pin)
 I2S Master模式初始化
xt_err_t xt_hal_i2sm_close (uint8_t i2s_id)
 关闭I2S接口
xt_err_t xt_hal_i2s_set_cb (uint8_t i2s_id, xt_hal_i2s_cb_t cb)
 设置I2S回调函数
xt_err_t xt_hal_i2sm_set_rx_buf (uint8_t i2s_id, void *buffer, size_t size)
 为流式传输设置接收缓冲区
xt_err_t xt_hal_i2sm_set_tx_buf (uint8_t i2s_id, void *buffer, size_t size)
 为流式传输设置发送缓冲区
int32_t xt_hal_i2sm_tx (uint8_t i2s_id, const void *tx_buffer, size_t size)
 流式非阻塞发送数据
int32_t xt_hal_i2sm_rx (uint8_t i2s_id, void *rx_buffer, size_t size)
 流式非阻塞接收数据
int32_t xt_hal_i2sm_txrx (uint8_t i2s_id, const void *tx_buffer, void *rx_buffer, size_t size)
 流式非阻塞全双工传输
int32_t xt_hal_i2sm_get_rx_count (uint8_t i2s_id)
 获取已接收到流缓冲区的采样点个数
int32_t xt_hal_i2sm_get_tx_free (uint8_t i2s_id)
 获取流缓冲区的剩余空闲采样点个数
int32_t xt_hal_i2sm_tx_0copy (uint8_t i2s_id, const void *tx_buffer, size_t size)
 非阻塞发送数据
int32_t xt_hal_i2sm_rx_0copy (uint8_t i2s_id, void *rx_buffer, size_t size)
 非阻塞接收数据
int32_t xt_hal_i2sm_txrx_0copy (uint8_t i2s_id, const void *tx_buffer, void *rx_buffer, size_t size)
 非阻塞全双工传输
xt_err_t xt_hal_i2sm_tx_continuous (uint8_t i2s_id, const void *tx_buffer, size_t size)
 非阻塞连续发送数据
xt_err_t xt_hal_i2sm_rx_continuous (uint8_t i2s_id, void *rx_buffer, size_t size)
 非阻塞连续接收数据
xt_err_t xt_hal_i2sm_txrx_continuous (uint8_t i2s_id, const void *tx_buffer, void *rx_buffer, size_t size)
 非阻塞连续全双工传输
xt_err_t xt_hal_i2sm_stop_continuous (uint8_t i2s_id)
 停止 I2S pingpong 传输
xt_err_t xt_hal_i2sm_get_result (uint8_t i2s_id, struct xt_hal_i2s_result *result)
 获取 I2S 传输结果
int32_t xt_hal_i2sm_tx_block (uint8_t i2s_id, const void *tx_buffer, size_t size)
 阻塞发送数据
int32_t xt_hal_i2sm_rx_block (uint8_t i2s_id, void *rx_buffer, size_t size)
 阻塞接收数据
int32_t xt_hal_i2sm_txrx_block (uint8_t i2s_id, const void *tx_buffer, void *rx_buffer, size_t size)
 阻塞全双工传输

详细描述

作者
your name (you@d.nosp@m.omai.nosp@m.n.com)
版本
0.1
日期
2025-10-16

SPDX-FileCopyrightText: 2025 深圳市天工聚创科技有限公司 SPDX-License-Identifier: Apache-2.0

在文件 xt_hal_i2s.h 中定义.