I2S
更新时间:2019-01-31 12:10:30
接口列表
函数名称 | 功能描述 |
---|---|
hal_i2s_init | 初始化指定I2S端口 |
hal_i2s_send | 从指定的I2S端口发送数据 |
hal_i2s_recv | 从指定的I2S端口接收数据 |
hal_i2s_pause | 暂停指定的I2S端口 |
hal_i2s_resume | 恢复指定的I2S端口 |
hal_i2s_stop | 停止指定的I2S端口 |
hal_i2s_finalize | 关闭指定I2S端口 |
接口详情
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 port */
i2s_config_t config; /* i2s config */
void *priv; /* priv data */
} i2s_dev_t;
i2s_config_t
typedef struct {
uint32_t freq; /* I2S communication frequency */
hal_i2s_mode_t mode; /* I2S operating mode */
hal_i2s_std_t standard; /* I2S communication standard */
hal_i2s_data_format_t data_format; /* I2S communication 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;