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

如何使用STM8S单片机的多通道AD转换,第1张

我给你个例程,我这是两个通道,一个是采集音频,然后彩灯随音乐节奏闪烁,同时采集电池电量。

void AD2_Config(void)

{

/ Init GPIO for ADC2 /

GPIO_Init(GPIOB, GPIO_PIN_6, GPIO_MODE_IN_FL_NO_IT);

/ De-Init ADC peripheral/

ADC1_DeInit();

ADC1_ClearITPendingBit(ADC1_IT_EOC);

/ Init ADC1 peripheral /

ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_6, ADC1_PRESSEL_FCPU_D18, \

ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL6,\

DISABLE);

/ Enable EOC interrupt /

//if(autoFm == 1)

ADC1_ITConfig(ADC1_IT_EOCIE,DISABLE);

//else

// ADC1_ITConfig(ADC1_IT_EOCIE,ENABLE);

/ Enable general interrupts /

/Start Conversion /

ADC1_StartConversion();

}

void AD_Config(void)

{

/ Init GPIO for ADC2 /

GPIO_Init(GPIOB, GPIO_PIN_7, GPIO_MODE_IN_FL_NO_IT);

// GPIOD->ODR &= 0x8f;

/ De-Init ADC peripheral/

ADC1_DeInit();

ADC1_ClearITPendingBit(ADC1_IT_EOC);

/ Init ADC1 peripheral /

ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_7, ADC1_PRESSEL_FCPU_D18, \

ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL7,\

DISABLE);

/ Enable EOC interrupt /

// if(autoFm == 1)

// ADC1_ITConfig(ADC1_IT_EOCIE,DISABLE);

//else

ADC1_ITConfig(ADC1_IT_EOCIE,ENABLE);

/Start Conversion /

ADC1_StartConversion();

}

main()

{

TIM2_Config();

TIM4_Config();

AD2_Config();

TIM1_Config();

enableInterrupts();

while(1)

{

if(ADChange >= 1)//这是个延时,多久进一次

{

AD2_Config();

while(RESET == ADC1_GetFlagStatus(ADC1_FLAG_EOC));

VoicADLeve = ADC1_GetConversionValue();

AD_Config();

ADChange = 0;

ADChange = 0;

}

}

}

在ADC中断里面

INTERRUPT_HANDLER(ADC2_IRQHandler, 22)

{

ADC1_ClearITPendingBit(ADC2_IT_EOC);

}

INTERRUPT_HANDLER(ADC1_IRQHandler, 22)

{

uint16_t temp;

temp = ADC1_GetConversionValue();//这是采集音频

if(temp < min_ad)

{

min_ad = temp;

}

if(temp > max_ad)

{

max_ad= temp;

}

ADC1_ClearITPendingBit(ADC1_IT_EOC);

}

这程序我只给了你ADC的部分

按你的整个算法,应该是AD转换采用的是12为0xfff代表的是12位所能表示的最大范围。

基准电源应该是5V,25002代表的就是5000mV,只是不知道他为什么不直接表示为5000

adc代表的是AD模块采集的数字量

adcout就是最后计算好的数字量所对应的电压值。

所有模数转换的公式都为:模拟量=(数字量/最大数字量)x 基准电压 。

1、ADC是英文“Analog-to-digital converter”的简写,是指模拟数字转换器,是用于将模拟形式的连续信号转换为数字形式的离散信号的一类设备。2、ADC是普通攻击持续输出核心的简称,是一场游戏中伤害输出核心之一,主要应用于MOBA类游戏中。

adc是什么意思

ADC这个称呼最初是由《刀塔》延伸而来。AD即“Attack Damage”,C是“Carry/Core’’,AD Carry即是普通攻击持续输出核心,其输出伤害需要大量依靠攻击力属性。在《刀塔》中将具有带动整体节奏的位置称为“Carry”,也就是“C位/核心位”。

首先确定ADC用几位表示,最大数值是多少。

然后确定最大值时对应的参考电压值。

要计算电压,就把你的ADC数值除以刚才确定的最大数值再乘以参考电压值。计算出来的电压值只是ADC管脚处的电压值。你可以用电压表量一下,计算值和实际值是否一样。

至于放大器等等,都是芯片外部的事情。外部电路怎么接,和芯片ADC的采样值无关。

如果你想知道芯片外部某处的电压,你需要从得出的ADC管脚处的电压,再根据电路图进行计算。

表观弥散系数ADC只代表弥散梯度磁场施加方向上水分子的弥散特点.而不能完全、正确地评价不同组织各向异性的特点。Higano等在进行测定中风和脑肿瘤病人内囊和放射冠的弥散各向异性特点的研究时,将弥散梯度磁场分别施加在X、Y、Z轴上。但是研究结果表明,三个方向弥散加权成像计算出的组织各向异性程度往往被低估,测得的数值往往是旋转变量(即值随弥散方向及磁场内被检查病人的体位和方向而改变),因为大部分的白质纤维通路常常倾斜于磁场坐标方向,所以单从一个或三个方向施加弥散梯度磁场不能正确评价具有不对称组织结构的各向异性特点。

从电子技术上讲,ADC是英文Analog-to-Digital Converter的缩写,中文译名: 模数变换器,在手机中ADC的作用就是把电池电压值(模拟量)转换为二进制的数字代码,从而提供给手机作为电量检测使用

我记得lm339貌似是比较器没有显示测电压的功能,更没有显示电池电量的功能,想显示电压的话,可以用ADC转化,在用显示屏显示,ADC型号可以用ADC0809,或者AVR单片机集成的,想用高精度的话,可以多位ADC转换,比如24位DC转化,型号如hx711不过这个是小电压测量的

以上就是关于如何使用STM8S单片机的多通道AD转换全部的内容,包括:如何使用STM8S单片机的多通道AD转换、STM32 ADC转换的问题。adcout=(((double)adc)/0xfff)*2500*2;adcout为转换所得电压。这个算式什么意思、蓝牙adc是什么意思啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9708122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存