欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1197|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32 ADC模塊

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:432883 發(fā)表于 2018-11-25 15:59 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "ADC.h"
#include "stm32f10x.h"
#include "stm32f10x_adc.h"
#include "stdio.h"
#include "usart.h"


void ADCx_Init()
{
       
        ADC_InitTypeDef ADC_InitStructure;   //定義ADC結(jié)構(gòu)體
        GPIO_InitTypeDef GPIO_InitStructure;  //定義GPIO結(jié)構(gòu)體
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);  //使能時鐘
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
        RCC_ADCCLKConfig(RCC_PCLK2_Div6);                                         //確定分頻
       
  GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;                  //GPIO初始化
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;                  //GPIO初始化
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOB,&GPIO_InitStructure);
       
        ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;        //ADC初始化
        ADC_InitStructure.ADC_ScanConvMode=DISABLE;
        ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;
  ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;
        ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;
        ADC_InitStructure.ADC_NbrOfChannel=1;
        ADC_Init(ADC1,&ADC_InitStructure);
       
        ADC_Cmd(ADC1,ENABLE);           //ADC使能
       
        ADC_ResetCalibration(ADC1);   //ADC校準(zhǔn)
        while(ADC_GetResetCalibrationStatus(ADC1));
        ADC_StartCalibration(ADC1);
        while(ADC_GetCalibrationStatus(ADC1));
       
        ADC_SoftwareStartConvCmd(ADC1,ENABLE); //軟件觸發(fā)
}

u16 Get_ADC_Value(u8 ch,u8 times)
{
        u8 t;
        u32 temp_val=0;
        ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5);
        for(t=0;t<times;t++)
        {
                ADC_SoftwareStartConvCmd(ADC1,ENABLE); //軟件觸發(fā)
                while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));
                temp_val+=ADC_GetConversionValue(ADC1);
                delay_ms(5);
        }
        return temp_val/times;
}

u16 ADC()
{   
        u16 value;
   value=Get_ADC_Value(ADC_Channel_1,20);       
//        float vol;
//        i++;

//        PBout(5)=0;
//        delay_ms(5);
//        PBout(5)=1;
//        delay_ms(5);
//        if(i%5==0)
//        {
//                value=Get_ADC_Value(ADC_Channel_1,20);

//                printf("檢測AD值為:%d\r\n",value);
//                vol=(float)value*(3.3/4096);
//                printf("檢測電壓值為:%.2fV\r\n",vol);
//        }
  return value;
               
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表