我被卡住了,如何才能将 adc 转换后的数据发送到代码中指定的任何数据类型为 uint8 的变量中?
我正在使用以下 dma 配置,但我没有在 uint8 value2 变量中接收到数据。 目的是通过 DMA 接收 value2 中的数据,然后进行处理并通过 DMA 将其发送到 pwm,因此基本上我需要知道如何通过 DMA 获取任何变量中的数据并将数据从任何变量发送到外设。
请指教。
为了将 ADC(8 位)转换为变量,我将 delsig ADC 的 EOC 连接到了 DMA 的 drq,而没有连接 DMA 的 nrq 引脚。
谢谢
以下是我使用的定义和配置
#include
#include
#include
#include
#include
#include
#include
#定义 DMA_BYTES_PER_BURST 1
#定义 DMA_REQUEST_PER_BURST 1
#定义 DMA_SRC_BASE ( TLE9243QK_BASE_BOARD )
#定义 DMA_DST_BASE ( TLE9243QK_BASE_BOARD )
void DMA_Config(){
/* DMA 的变量声明 */
/* 将这些变量声明移到函数的顶部 */
uint8 DMA_Chan;
uint8 DMA_TD[1];
/* DMA 的 DMA 配置 */
DMA_Chan = DMA_DmaIni
tialize(DMA_BYTES_PER_BURST,DMA_REQUEST_PER_BURST,HI16(DMA_SRC_BASE),HI16(DMA_DST_BASE));
DMA_TD[0] = CyDmaTdAllocate();
CyDmaTdSetConfiguration(DMA_TD[0], 1, DMA_TD[0], DMA__TD_TERMOUT_EN );
CyDmaTdSetAddress(DMA_TD[0], LO16((uint8)ADC_DEC_SAMP_PTR), LO16((uint8) value2));
CyDmaChSetInitialTd(DMA_Chan, DMA_TD[0]);
CyDmaChEnable(DMA_Chan, 1);
}