stm32f103 adc1 与DMA的结合方式应用实例 (二)

2014-11-23 19:33:25 · 作者: · 浏览: 15
后移 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; //定义外设数据宽度为16位 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; //DMA搬移数据尺寸,HalfWord就是为16位 DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; //转换模式,循环缓存模式。 DMA_InitStructure.DMA_Priority = DMA_Priority_High; //DMA优先级高 DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; //M2M模式禁用 DMA_Init(DMA1_Channel1, &DMA_InitStructure); /* Enable DMA1 channel1 */ DMA_Cmd(DMA1_Channel1, ENABLE); } //===ADC GPIO 初始化======= void ADC1_GPIOInit(void) { //-----------PB--------------------------------- //VR 端口 PB1 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //管脚1 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //输入模式 GPIO_Init(GPIOB, &GPIO_InitStructure); } //====实例应用======= //ADC1初始化设置 ADC1_GPIOInit() ; ADC1_Config() ; DMA_Config_ADC1() ; //dma设置 //--主程序----- void mian(void) { while(1) { while(!F_10MS); F_10MS = 0 ; Tmp = AD_Value[0] ; //在缓存区中 读取AD结果 } }