I2S
更新时间:2019-01-31 12:10:30
接口列表
接口详情
int32_t hal_i2s_init(i2s_dev_t *i2s)
描述 |
初始化指定I2S端口 |
参数 |
i2s:I2S设备描述,定义需要初始化的I2S参数 |
返回值 |
返回成功或失败, 返回0表示I2S初始化成功,非0表示失败 |
int32_t hal_i2s_send(i2s_dev_t i2s, const void data, uint32_t size, uint32_t timeout)
描述 |
从指定的I2S端口发送数据 |
参数 |
i2s:I2S设备描述 |
|
data:指向发送缓冲区的数据指针 |
|
size:要发送的数据字节数 |
|
timeout:超时时间(单位ms),如果希望一直等待设置为HAL_WAIT_FOREVER |
返回值 |
返回成功或失败, 返回0表示I2S数据发送成功,非0表示失败 |
int32_t hal_i2s_recv(i2s_dev_t i2s, void data, uint32_t size, uint32_t timeout)
描述 |
从指定的I2S端口接收数据 |
参数 |
i2s:I2S设备描述 |
|
data:指向接收缓冲区的数据指针 |
|
size:期望接收的数据字节数 |
|
timeout:超时时间(单位ms),如果希望一直等待设置为HAL_WAIT_FOREVER |
返回值 |
返回成功或失败, 返回0表示成功接收size个数据,非0表示失败 |
int32_t hal_i2s_pause(i2s_dev_t *i2s)
描述 |
暂停指定I2S端口 |
参数 |
i2s:I2S设备描述 |
返回值 |
返回成功或失败, 返回0表示暂停成功,非0表示失败 |
int32_t hal_i2s_resume(i2s_dev_t *i2s)
描述 |
恢复指定I2S端口 |
参数 |
i2s:I2S设备描述 |
返回值 |
返回成功或失败, 返回0恢复成功,非0表示失败 |
int32_t hal_i2s_stop(i2s_dev_t *i2s)
描述 |
停止指定I2S端口 |
参数 |
i2s:I2S设备描述 |
返回值 |
返回成功或失败, 返回0表示停止成功,非0表示失败 |
int32_t hal_i2s_finalize(i2s_dev_t *i2s)
描述 |
关闭指定I2S端口 |
参数 |
i2s:I2S设备描述 |
返回值 |
返回成功或失败, 返回0表示关闭成功,非0表示失败 |
相关结数据结构
i2s_dev_t
typedef struct {
uint8_t port;
i2s_config_t config;
void *priv;
} i2s_dev_t;
i2s_config_t
typedef struct {
uint32_t freq;
hal_i2s_mode_t mode;
hal_i2s_std_t standard;
hal_i2s_data_format_t data_format;
} i2s_config_t;
hal_i2s_mode_t
typedef enum {
MODE_SLAVE_TX,
MODE_SLAVE_RX,
MODE_MASTER_TX,
MODE_MASTER_RX
} hal_i2s_mode_t;
hal_i2s_std_t
typedef enum {
STANDARD_PHILIPS,
STANDARD_MSB,
STANDARD_LSB,
STANDARD_PCM_SHORT,
STANDARD_PCM_LONG
} hal_i2s_std_t;
hal_i2s_data_format_t
typedef enum {
DATAFORMAT_16B,
DATAFORMAT_16B_EXTENDED,
DATAFORMAT_24B,
DATAFORMAT_32B
} hal_i2s_data_format_t;