我是第一次使用KF32F系列芯片,厂家提供的ADC-DMA的示例程序,编译一直报错。查了一下是主函数里,ADC_DMA_Cmd(ADC0_SFR,TRUE); 这个函数没有定义,我浏览了一下DMA的库函数和ADC的库函数,都没有找到相关的函数说明,
请问一下麻烦大家用的时候是怎么打开ADC-DMA通道的
void main()
{
//系统时钟,外设高频时钟配置
SystemInit();
GPIO_Write_Mode_Bits(GPIOB_SFR, GPIO_PIN_MASK_8,GPIO_MODE_OUT); //STATUS灯配置为输出模式
//配置USART2引脚重映射
GPIO_USART();
//全双工异步8bit 9600波特率
USART_Async_config(USART2_SFR);
Init_T1();
/* DMA复位 */
DMA_Reset (DMA0_SFR); //复位指令
Init_dma0(); //配置DMA0的ch3
Init_dma0_it();
Init_dma1(); //配置DMA0的ch4
Init_dma1_it();
INT_Interrupt_Priority_Config(INT_DMA0,3,0);//抢占优先级4,子优先级0
INT_Interrupt_Enable(INT_DMA0,TRUE);//外设中断使能
INT_Clear_Interrupt_Flag(INT_DMA0);//清中断标志
Init_adc0();
ADC_DMA_Cmd(ADC0_SFR,TRUE); //使能ADC的DMA功能
Init_adc1();
ADC_DMA_Cmd(ADC1_SFR,TRUE); //使能ADC的DMA功能
ADC_Double_Mode_Config(ADC_REGULAR_SYNC); //不能使用混合模式,高低优先级的通道必须分开
Delay(0xFFF); //ADC使能后需要一段短暂的时间,等待电路充电完毕后,才能去采样,否者可能存在较大的采样误差
INT_All_Enable (TRUE);//全局可屏蔽中断使能,该中断使能控制不包含复位/NMI/硬件错误中断
while(1)
{
Delay(0xFFFFF);
GPIO_Toggle_Output_Data_Config(GPIOB_SFR, GPIO_PIN_MASK_8); //状态灯翻转
}
} |