资源简介

通过外部PB11口进行捕获上升沿来触发ADC捕获,欢迎大家下载

资源截图

代码片段和文件信息

 #include 
#include “adc.h“
#include “LED.h“
//本例程作为adc定时双路采集
//朱明辉 2012.11.17
   
//初始化ADC
//这里我们仅以同步注入通道为例
//我们默认将开启通道0~1
void  Adc_Init(void)  
{    
//先初始化IO口   
RCC->APB2ENR|=1<<2;     //使能PORTA口时钟 
RCC->APB2ENR|=1<<3;     //使能PORTB口时钟 
RCC->APB2ENR|=1<<4;     //使能PORTC口时钟 
   
GPIOA->CRL&=0XFFFFFFF0; //PA0为anolog输入  
GPIOB->CRH&=0XFFFF0FFF; 
GPIOB->CRH|=0X00008000; //PB11 下拉输入(默认)
Ex_NVIC_Config(GPIO_B11RTIR); //上升沿触发
 
GPIOC->CRH&=0XFF0FFFFF;   
GPIOC->CRH|=0X00300000; //PC13 推免输出

    
//通道设置     
RCC->APB2ENR|=1<<9;    //ADC1时钟使能      
RCC->APB2RSTR|=1<<9;   //ADC1复位   
RCC->APB2RSTR&=~(1<<9);//复位结束        
RCC->CFGR&=~(3<<14);   //分频因子清零   
//SYSCLK/DIV2=8M ADC时钟设置为8MADC最大时钟不能超过14M!   
//否则将导致ADC准确度下降!    
RCC->CFGR|=3<<14;      //8分频     
ADC1->CR1&=0XF0FFFF;   //工作模式清零    
ADC1->CR1|=6<<16;      //规则同步模式 
ADC1->CR1|=1<<8;       //扫描模式 扫描选中的1通道    
ADC1->CR2|=0<<1;       //单次转换模式 

ADC1->CR2&=~(7<<17);      
ADC1->CR2|=6<<17;    //EXTI11线控制转换  
    
ADC1->CR2|=1<<20;      //使用用外部触发必须使用一个事件来触发  
ADC1->CR2&=~(1<<11);   //右对齐    
ADC1->SQR1&=~(0XF<<20);   
ADC1->SQR1|=0X00<<20;   //1个转换在规则序列中 
       
//设置通道的采样时间   
ADC1->SMPR2&=~(7<<0);   //通道0采样时间清空      
ADC1->SMPR2|=7<<0;      //通道0  239.5周期提高采样时间可以提高精确度 


ADC1->SQR3&=~(0x1f<<0);     
ADC1->SQR3|=0<<0;  //通道0  
/*     
ADC1->SQR3&=~(0x1f<<0);     
ADC1->SQR3|=2<<0;  //通道2       
ADC1->SQR3&=~(0x1f<<5);    
ADC1->SQR3|=3<<5;  //通道3       
ADC1->SQR3&=~(0x1f<<10);   
ADC1->SQR3|=4<<10; //通道4  
ADC1->SQR3&=~(0x1f<<15);   
ADC1->SQR3|=5<<15; //通道5  
ADC1->SQR3&=~(0x1f<<20);   
ADC1->SQR3|=6<<20; //通道6 
ADC1->SQR3&=~(0x1f<<25);   
ADC1->SQR3|=7<<25; //通道7 
 */      
ADC1->CR2|=1<<0;       //开启ADC并启动转换   
ADC1->CR2|=1<<3;       //使能复位校准     
while(ADC1->CR2&1<<3); //等待校准结束      
//该位由软件设置并由硬件清除。在校准寄存器被初始化后该位将被清除。      
ADC1->CR2|=1<<2;       //开始AD校准       
while(ADC1->CR2&1<<2); //等待校准结束   
//该位由软件设置以开始校准,并在校准结束时由硬件清除      
//ADC1->CR2|= 1<<8 ;     //使用DMA模式转换     
ADC1->CR2|=1<<22;   //启动规则转换通道 
ADC1->CR2|=0<<0;       //关闭AD转换  
}

u16 Get_Adc(u8 ch)   
{
//设置转换序列     
ADC1->SQR3&=0XFFFFFFE0;//规则序列1 通道ch
ADC1->SQR3|=ch;        
ADC1->CR2|=1<<22;       //启动规则转换通道 
while(!(ADC1->SR&1<<1));//等待转换结束      
return ADC1->DR; //返回adc值
}
   

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2739  2013-11-14 14:20  新建文件夹\HARDWARE\adc\adc.c

     文件        392  2013-11-14 14:20  新建文件夹\HARDWARE\adc\adc.h

     文件       1873  2013-11-14 14:20  新建文件夹\HARDWARE\DMA\dma.c

     文件        688  2013-11-14 14:20  新建文件夹\HARDWARE\DMA\dma.h

     文件       1756  2013-11-14 14:20  新建文件夹\HARDWARE\EXTI\exti.c

     文件        628  2013-11-14 14:20  新建文件夹\HARDWARE\EXTI\exti.h

     文件       1795  2013-11-14 14:20  新建文件夹\HARDWARE\KEY\key.c

     文件        839  2013-11-14 14:20  新建文件夹\HARDWARE\KEY\key.h

     文件        942  2013-11-14 14:20  新建文件夹\HARDWARE\LED\led.c

     文件        288  2013-11-14 14:20  新建文件夹\HARDWARE\LED\led.h

     文件       1869  2013-11-14 14:20  新建文件夹\HARDWARE\TIMER\timer.c

     文件        599  2013-11-14 14:20  新建文件夹\HARDWARE\TIMER\timer.h

     文件       2088  2013-11-14 14:20  新建文件夹\HARDWARE\WDG\wdg.c

     文件        756  2013-11-14 14:20  新建文件夹\HARDWARE\WDG\wdg.h

     文件        399  2013-11-14 14:20  新建文件夹\keilkilll.bat

     文件         87  2013-11-14 14:20  新建文件夹\README.TXT

     文件       2038  2013-11-14 14:20  新建文件夹\SYSTEM\delay\delay.c

     文件        876  2013-11-14 14:20  新建文件夹\SYSTEM\delay\delay.h

     文件       6885  2013-11-14 14:20  新建文件夹\SYSTEM\sys\sys.c

     文件       3839  2013-11-14 14:20  新建文件夹\SYSTEM\sys\sys.h

     文件       3342  2013-11-14 14:20  新建文件夹\SYSTEM\usart\usart.c

     文件       1054  2013-11-14 14:20  新建文件夹\SYSTEM\usart\usart.h

     文件     150951  2013-11-14 14:20  新建文件夹\USER\adc.crf

     文件       1623  2013-11-14 14:20  新建文件夹\USER\adc.d

     文件     174412  2013-11-14 14:20  新建文件夹\USER\adc.o

     文件     148168  2013-11-14 14:20  新建文件夹\USER\delay.crf

     文件       1629  2013-11-14 14:20  新建文件夹\USER\delay.d

     文件     171508  2013-11-14 14:20  新建文件夹\USER\delay.o

     文件     150295  2013-11-14 14:20  新建文件夹\USER\dma.crf

     文件       1625  2013-11-14 14:20  新建文件夹\USER\dma.d

............此处省略65个文件信息

评论

共有 条评论