This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我正在尝试将 UDMA 配置为传输1024个值(每个16位)。 我遇到了一些问题、因为代码无法触发 ADC INT。 我在中断中有一个断点、它永远不会到达它。
ADC 正由计时器触发、我希望 UDMA 每次触发时都会捕获一个值。 初始化代码中是否有问题? 谢谢你
此外、我尝试使用 ADC0和序列发生器3。 因此它将捕获1个值。 此外、我的采样率约为50kHz。
谢谢、我非常感谢
工具/软件:TI-RTOS
void ConfigureADCandDMA (void){ //启用 UDMA 和 ADC 外设 SysCtlPeripheralEnable (SYSCTL_Periph_ADC0); SysCtlPeripheralReset (SYSCTL_Periph_ADC0); ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PLL | ADC_CLOCK_RATE_FULL、30); // uDMA 初始化 ADCSequenceConfigure (ADC0_BASE、3、ADC_TRIGGER_TIMER、0); ADCSequenceStepConfigure (ADC0_BASE、3、0、ADC_CTL_CH8 | ADC_CTL_IE | ADC_CTL_END); ADCSequenceDMAEnable (ADC0_BASE、3); //###################################### SysCtlPeripheralEnable (SYSCTL_Periph_UDMA); SysCtlPeripheralReset (SYSCTL_Periph_UDMA); uDMAEnable(); uDMAControlBaseSet (sControlTable); uDMAChannelAttributeDisable (UDMA_CHANGE_ADC0、UDMA_ATTR_ALL); uDMAChannelAttributeEnable (UDMA_CHANGE_ADC0、UDMA_ATTR_USEBURST /*仅允许突发传输*/); uDMAChannelControlSet (UDMA_CHANGE_ADC0 | UDMA_PRI_SELECT、 UDMA_SIZE_16 | UDMA_SRC_INC_NONE | UDMA_DST_INC_16 | UDMA_ARC_1024); uDMAChannelTransferSet (UDMA_CHANGE_ADC0 | UDMA_PRI_SELECT、 UDMA_MODE_BASIC、 (void *)(ADC0_BASE + ADC_O_SSFIFO3)、 G_ulADCValues、1023); uDMAChannelEnable (UDMA_CHANGE_ADC0); IntEnable (INT_UDMAERR); IntEnable (INT_UDMA); IntEnable (INT_ADC0SS3); ADCIntEnableEx (ADC0_BASE、ADC_INT_DMA_SS3); ADCSequenceEnable (ADC0_BASE、3); // ADCIntEnable (ADC0_BASE、3); ADCIntClear (ADC0_BASE、3); }