返回
首页>资讯

AD转换通道是什么

时间: 2023-04-10 23:37:41

AD转换通道是什么

AD为模数转换器,四通道指可输入4路模拟量信号,但对这4路信号是同步还是分时采样转换则因芯片规格而定;实际模数转换器只有一路AD转换器,只不过在芯片内部加了一个多路开关,可以分时的对几路信号对信切换,因为AD转换器的成本较高。

如何使用STM8S单片机的多通道AD转换

#include "adc.h"
 u16  TempADC;
void ADC_Config(void) 
{
    ADC_CR1 |= 0x01;    //开始启动初始化必须启动一次
                        //第一次写1,ADC从低功耗唤醒,第二次写1,启动ADC转换
   //ADC_CR1 |= 0x20; //使能转换结束中断,本例中采用的查询方式。
}
 
uint16_t Get_ADCCH_Value(ADC1_Channel_TypeDef ADC_Channel)

  ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS,ADC_Channel, ADC1_PRESSEL_FCPU_D2,
     ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_ALL, DISABLE);
    //你也可以用操作寄存器的方式代码如下,但未验证。
#if 0
ADC_CR2 = 0x00;             // A/D结果数据左对齐
CLK_PCKENR2 |= 0x08;        // 使能fMASTER与ADC的连接
ADC_CR1 = 0x00;// ADC时钟=主时钟/2=8MHz,单次转换模式
ADC_CSR = 0x01;             // 选择通道2
ADC_TDRL = 0x01;            // 禁止施密特触发功能 
ADC_TDRH = 0x01;
ADC_CR1 = 0x03; //2分频,连续转换,启动ADC
ADC_CR2 = 0x31; //外部事件保留,数据右对齐,禁止扫描模式,
ADC_CSR|= 0x01; //选择通道1
#endif
 ADC1_ConversionConfig(ADC1_CONVERSIONMODE_CONTINUOUS, ADC_Channel,ADC1_ALIGN_RIGHT);
     ADC_CR1 |= 0x01;      //开始启动转换
     while(!(ADC_CSR & 0x80));   //等待转换结束
    return ADC1_GetConversionValue(); //返回ADC结果
}
//这个初始化代码很重要,不能省,每次切换通道都要初始化一次!
在main函数中直接调用即可:
  TempADC=Get_ADCCH_Value(ADC1_CHANNEL_1); //获取AD转化值
  WetADC=Get_ADCCH_Value(ADC1_CHANNEL_3; //获取AD转化值

声明: 我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本站部分文字与图片资源来自于网络,转载是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:daokedao3713@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

猜你喜欢

本站内容仅供参考,不作为诊断及医疗依据,如有医疗需求,请务必前往正规医院就诊
祝由网所有文章及资料均为作者提供或网友推荐收集整理而来,仅供爱好者学习和研究使用,版权归原作者所有。
如本站内容有侵犯您的合法权益,请和我们取得联系,我们将立即改正或删除。
Copyright © 2022-2023 祝由师网 版权所有

邮箱:daokedao3713@qq.com

备案号:鲁ICP备2022001955号-4

网站地图