I2S驱动的结构体
i2s_init_t
I2S驱动的初始化结构体i2s_init_t的定义如下:
| 数据域 | 域段描述 | 取值 |
|---|---|---|
|
uint32_t data_size |
数据传输宽度 |
该参数的取值可以是下列值中的任意一个:
说明
|
|
uint32_t clock_source |
时钟源 |
该参数的取值可以是下列值中的任意一个:
|
|
uint32_t audio_freq |
音频频率 |
audio_freq = fsck/(2 * wss),fsck是I2S的串行时钟频率,最大取值为3027 kHz;WSS依赖于位宽参数可取值16、24、32,比如位宽配置为16 bit,WSS取值为16,audio_freq最大可配置为96 kHz。 |
i2s_handle_t
I2S驱动的句柄结构体i2s_handle_t的定义如下:
| 数据域 | 域段描述 | 取值 |
|---|---|---|
|
i2s_regs_t *p_instance |
I2S实例。 |
该参数的取值可以是下列值中的任意一个:
|
|
i2s_init_t init |
初始化结构体。 |
参考i2s_init_t结构体。 |
|
uint16_t *p_tx_buffer |
指向数据传输缓冲区的指针(驱动负责管理,无需开发者初始化)。 |
N/A |
|
__IO uint32_t tx_xfer_size |
数据传输长度(驱动负责管理,无需开发者初始化)。 |
N/A |
|
__IO uint32_t tx_xfer_count |
数据传输计数(驱动负责管理,无需开发者初始化)。 |
N/A |
|
uint16_t *p_rx_buffer |
指向数据接收缓冲区的指针(驱动负责管理,无需开发者初始化)。 |
N/A |
|
__IO uint32_t rx_xfer_size |
数据接收长度(驱动负责管理,无需开发者初始化)。 |
N/A |
|
__IO uint32_t rx_xfer_count |
数据接收计数(驱动负责管理,无需开发者初始化)。 |
N/A |
|
void (*write_fifo)(struct _i2s_handle *p_i2s) |
指向I2S TX写FIFO函数的指针(驱动负责管理,无需开发者初始化)。 |
N/A |
|
void (*read_fifo)(struct _i2s_handle *p_i2s) |
指向I2S RX读FIFO函数的指针(驱动负责管理,无需开发者初始化)。 |
N/A |
|
dma_handle_t *p_dmatx |
指向I2S TX通道的DMA句柄的指针。 |
发送通道的DMA句柄dma_handle_t结构体。 |
|
dma_handle_t *p_dmarx |
指向I2S RX通道的 DMA句柄的指针。 |
接收通道的DMA句柄dma_handle_t结构体。 |
|
__IO hal_lock_t lock |
I2S锁(驱动负责管理,无需开发者初始化)。 |
N/A |
|
__IO hal_i2s_state_t state |
I2S运行状态(无需开发者初始化)。 |
该参数的取值可以是下列值中的任意一个:
|
|
__IO uint32_t error_code |
I2S错误码(无需开发者初始化)。 |
该参数的取值可以是下列值中的任意一个:
|