CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!
无匹配项 共计114个匹配页面

DMA驱动的结构体

dma_init_t

DMA驱动的初始化结构体dma_init_t的定义如下:

表 122 dma_init_t结构体
数据域 域段描述 取值

uint32_t src_request

源外设类型。

该参数的取值可以是下列值中的任意一个:

  • DMA_REQUEST_SPIM_TX(SPIM发送)
  • DMA_REQUEST_SPIM_RX(SPIM接收)
  • DMA_REQUEST_SPIS_TX(SPIS发送)
  • DMA_REQUEST_SPIS_RX(SPIS接收)
  • DMA_REQUEST_QSPI0_TX(QSPI0发送)
  • DMA_REQUEST_QSPI0_RX(QSPI0接收)
  • DMA_REQUEST_I2C0_TX(I2C0发送)
  • DMA_REQUEST_I2C0_RX(I2C0接收)
  • DMA_REQUEST_I2C1_TX(I2C1发送)
  • DMA_REQUEST_I2C1_RX(I2C1接收)
  • DMA_REQUEST_I2S_S_TX(I2SS发送)
  • DMA_REQUEST_I2S_S_RX(I2SS接收)
  • DMA_REQUEST_UART0_TX(UART0发送)
  • DMA_REQUEST_UART0_RX(UART0接收)
  • DMA_REQUEST_QSPI1_TX(QSPI1发送)
  • DMA_REQUEST_QSPI1_RX(QSPI1接收)
  • DMA_REQUEST_I2S_M_TX(I2SM发送)
  • DMA_REQUEST_I2S_M_RX(I2SM接收)
  • DMA_REQUEST_SNSADC(Sense ADC)
  • DMA_REQUEST_MEM(内存)

uint32_t dst_request

目的外设类型。

该参数的取值可以是下列值中的任意一个:

  • DMA_REQUEST_SPIM_TX(SPIM发送)
  • DMA_REQUEST_SPIM_RX(SPIM接收)
  • DMA_REQUEST_SPIS_TX(SPIS发送)
  • DMA_REQUEST_SPIS_RX(SPIS接收)
  • DMA_REQUEST_QSPI0_TX(QSPI0发送)
  • DMA_REQUEST_QSPI0_RX(QSPI0接收)
  • DMA_REQUEST_I2C0_TX(I2C0发送)
  • DMA_REQUEST_I2C0_RX(I2C0接收)
  • DMA_REQUEST_I2C1_TX(I2C1发送)
  • DMA_REQUEST_I2C1_RX(I2C1接收)
  • DMA_REQUEST_I2S_S_TX(I2SS发送)
  • DMA_REQUEST_I2S_S_RX(I2SS接收)
  • DMA_REQUEST_UART0_TX(UART0发送)
  • DMA_REQUEST_UART0_RX(UART0接收)
  • DMA_REQUEST_QSPI1_TX(QSPI1发送)
  • DMA_REQUEST_QSPI1_RX(QSPI1接收)
  • DMA_REQUEST_I2S_M_TX(I2SM发送)
  • DMA_REQUEST_I2S_M_RX(I2SM接收)
  • DMA_REQUEST_SNSADC(Sense ADC)
  • DMA_REQUEST_MEM(内存)

uint32_t direction

数据传输方式。

该参数的取值可以是下列值中的任意一个:

  • DMA_MEMORY_TO_MEMORY(内存到内存)
  • DMA_MEMORY_TO_PERIPH(内存到外设)
  • DMA_PERIPH_TO_MEMORY(外设到内存)
  • DMA_PERIPH_TO_PERIPH(外设到外设)

uint32_t src_increment

源地址增量模式。

该参数的取值可以是下列值中的任意一个:

  • DMA_SRC_INCREMENT(源地址递增)
  • DMA_SRC_DECREMENT(源地址递减)
  • DMA_SRC_NO_CHANGE(源地址不变)

uint32_t dst_increment

目的地址增量模式。

该参数的取值可以是下列值中的任意一个:

  • DMA_DST_INCREMENT(目的地址递增)
  • DMA_DST_DECREMENT(目的地址递减)
  • DMA_DST_NO_CHANGE(目的地址不变)

uint32_t src_data_alignment

源地址数据位宽/对齐方式。

该参数的取值可以是下列值中的任意一个:

  • DMA_SDATAALIGN_BYTE(字节对齐)
  • DMA_SDATAALIGN_HALFWORD(半字对齐)
  • DMA_SDATAALIGN_WORD(字对齐)

uint32_t dst_data_alignment

目的地址数据位宽/对齐方式。

该参数的取值可以是下列值中的任意一个:

  • DMA_DDATAALIGN_BYTE(字节对齐)
  • DMA_DDATAALIGN_HALFWORD(半字对齐)
  • DMA_DDATAALIGN_WORD(字对齐)

uint32_t mode

操作模式。

该参数的取值可以是下列值中的任意一个:

  • DMA_NORMAL(普通模式,单次传输)
  • DMA_CIRCULAR(循环模式,多次传输)

uint32_t priority

通道优先级。

该参数的取值可以是下列值中的任意一个:

  • DMA_PRIORITY_LOW(低优先级)
  • DMA_PRIORITY_MEDIUM(中优先级)
  • DMA_PRIORITY_HIGH(高优先级)
  • DMA_PRIORITY_VERY_HIGH(最高优先级)

dma_handle_t

DMA驱动的句柄结构体dma_handle_t的定义如下:

表 123 dma_handle_t结构体
数据域 域段描述 取值

dma_channel_t channel

DMA通道实例。

该参数的取值可以是下列值中的任意一个:

  • DMA_Channel0(通道0)
  • DMA_Channel1(通道1)
  • DMA_Channel2(通道2)
  • DMA_Channel3(通道3)
  • DMA_Channel4(通道4)
  • DMA_Channel5(通道5)
  • DMA_Channel6(通道6)
  • DMA_Channel7(通道7)

dma_init_t init

初始化结构体。

参考dma_init_t结构体。

__IO hal_lock_t lock

DMA锁(无需开发者初始化)。

N/A

__IO hal_dma_state_t state

DMA运行状态(无需开发者初始化)。

该参数的取值可以是下列值中的任意一个:

  • HAL_DMA_STATE_RESET(未初始化)
  • HAL_DMA_STATE_READY(已初始化且空闲)
  • HAL_DMA_STATE_BUSY(忙)
  • HAL_DMA_STATE_TIMEOUT(超时)
  • HAL_DMA_STATE_ERROR(错误)

void *p_parent

使用当前通道实例的外设句柄指针,可以是其它外设的句柄指针。

N/A

void (*xfer_tfr_callback)(struct __dma_handle_t *p_dma)

传输完成回调函数。

可通过hal_dma_register_callback()及

hal_dma_unregister_callback()进行回调函数的注册及注销。

N/A

void (*xfer_blk_callback)(struct __dma_handle_t *p_dma)

块传输完成回调函数。

可通过hal_dma_register_callback()及

hal_dma_unregister_callback()进行回调函数的注册及注销。

N/A

void (*xfer_error_callback)(struct __dma_handle_t *p_dma)

错误回调函数。可通过hal_dma_register_callback()及

hal_dma_unregister_callback()进行回调函数的注册及注销。

N/A

void (*xfer_abort_callback)(struct __dma_handle_t *p_dma)

中止完成回调函数。可通过hal_dma_register_callback()及

hal_dma_unregister_callback()进行回调函数的注册及注销。

N/A

__IO uint32_t error_code

DMA错误码(无需开发者初始化)。

该参数的取值可以是下列值中的任意一个:

  • HAL_DMA_ERROR_NONE(无错误)
  • HAL_DMA_ERROR_TE(传输错误)
  • HAL_DMA_ERROR_NO_XFER(无正在进行的数据传输)
  • HAL_DMA_ERROR_TIMEOUT(超时)

uint32_t retention[5];

保存DMA寄存器信息(驱动负责管理,无需开发者初始化)。

N/A

扫描关注

打开微信,使用“扫一扫”即可关注。