介绍关于I2S初始化、收发数据、暂停、恢复、停止、关闭等功能所调用的一些抽象函数。
API列表
函数名称 | 功能描述 |
---|---|
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端口 |
hal_i2s_init
定义描述
定义 | 描述 |
---|---|
函数原型 | int32_t hal_i2s_init(i2s_dev_t *i2s) |
描述 | 初始化指定I2S端口 |
参数 | i2s:I2S设备描述,定义需要初始化的I2S参数 |
返回值 | 返回成功或失败,返回0表示I2S初始化成功,非0表示失败 |
hal_i2s_send
定义描述
定义 | 描述 |
---|---|
函数原型 | int32_t hal_i2s_send(i2s_dev_t *i2s, const void *data, uint32_t size, uint32_t timeout) |
描述 | 从指定的I2S端口发送数据 |
参数 |
|
返回值 | 返回成功或失败,返回0表示I2S数据发送成功,非0表示失败 |
hal_i2s_recv
定义描述
定义 | 描述 |
---|---|
函数原型 | int32_t hal_i2s_recv(i2s_dev_t *i2s, void *data, uint32_t size, uint32_t timeout) |
描述 | 从指定的I2S端口接收数据 |
参数 |
|
返回值 | 返回成功或失败,返回0表示成功接收size个数据,非0表示失败 |
hal_i2s_pause
定义描述
定义 | 描述 |
---|---|
函数原型 | int32_t hal_i2s_pause(i2s_dev_t *i2s) |
描述 | 暂停指定I2S端口 |
参数 | i2s:I2S设备描述 |
返回值 | 返回成功或失败,返回0表示暂停成功,非0表示失败 |
hal_i2s_resume
定义描述
定义 | 描述 |
---|---|
函数原型 | int32_t hal_i2s_resume(i2s_dev_t *i2s) |
描述 | 恢复指定I2S端口 |
参数 | i2s:I2S设备描述 |
返回值 | 返回成功或失败,返回0表示恢复成功,非0表示失败 |
hal_i2s_stop
定义描述
定义 | 描述 |
---|---|
函数原型 | int32_t hal_i2s_stop(i2s_dev_t *i2s) |
描述 | 停止指定I2S端口 |
参数 | i2s:I2S设备描述 |
返回值 | 返回成功或失败,返回0表示停止成功,非0表示失败 |
hal_i2s_finalize
定义描述
定义 | 描述 |
---|---|
函数原型 | 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;
在文档使用中是否遇到以下问题
更多建议
匿名提交