亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版
標(biāo)題:
STM8L的ADC之測(cè)量VDD電壓詳解 含例程
[打印本頁(yè)]
作者:
51hei小林
時(shí)間:
2016-10-10 00:55
標(biāo)題:
STM8L的ADC之測(cè)量VDD電壓詳解 含例程
STM8L內(nèi)部含有一個(gè)12位的ADC,擁有25個(gè)輸入通道,包括一個(gè)內(nèi)部溫度傳感器,一個(gè)內(nèi)部參考電壓。
STM8L使用外部參考電壓作為ADC參考電壓,由于VDD,GND一般和ADC的外部參考電壓引腳VREF+,VREF-連接在一起。所以VDD的電壓就是ADC的參考電壓,由于LDO供給MCU的電壓有一定的偏差。所以使用ADC前需要知道VDD的電壓為多少,對(duì)于十二位的ADC,VDD電壓對(duì)應(yīng)的轉(zhuǎn)換出的數(shù)值為4096(2^12).
從第一張圖中可以看到,STM8L內(nèi)部還有一個(gè)內(nèi)部參考電壓,這個(gè)內(nèi)部參考電壓的電壓值是可知的,且是精確的。由數(shù)據(jù)手冊(cè)可知,內(nèi)部參考電壓為1.225V。
ADC選擇內(nèi)部參考電壓作為測(cè)量通道,可以測(cè)量到內(nèi)部電壓的轉(zhuǎn)化值Nadc。
此時(shí),已經(jīng)VDD的轉(zhuǎn)化值4096,VREFINT電壓值1.225V及對(duì)應(yīng)的轉(zhuǎn)化值Nadc。
這些值滿(mǎn)足比例關(guān)系,VDD/4096=VREFINT/Nadc
VDD/4096 =1.225/Nadc
VDD=1.225*4096/Nadc
本文使用ADC的單次轉(zhuǎn)換模式,每隔大約0.5S觸發(fā)一次ADC轉(zhuǎn)換。ADC轉(zhuǎn)換的通道需要在ADC_SQR寄存器中選擇。
ADC完成一次數(shù)據(jù)采集轉(zhuǎn)化后,會(huì)進(jìn)入中斷。我們?cè)谥袛嘀写蛞粋(gè)斷點(diǎn),查看變量VDD_Value中的數(shù)據(jù),可以看到此時(shí)數(shù)據(jù)為2976(電壓值被擴(kuò)大了1000倍),即VDD的電壓為2.976V。.與實(shí)際用萬(wàn)用表測(cè)量的2.99V幾乎一樣。
/****************************************************************************************
*開(kāi)發(fā)環(huán)境:IAR for stm8 v1.40.1
*硬件平臺(tái):STM8L-DISCOVERY
*功能說(shuō)明:測(cè)量VDD電壓,VDD的計(jì)算結(jié)果在ADC中斷中,通過(guò)仿真,設(shè)置斷點(diǎn),可以在IAR中查看擴(kuò)大1000被后的VDD電壓數(shù)據(jù)VDD_Value
*作 者:茗風(fēng)
****************************************************************************************/
#include"iostm8l152c6.h"
#include"stdbool.h"
#include"stdint.h"
uint16_t VDD_Value=0;
/******************************************************************************************************
* 名 稱(chēng):void delay_10ms(uint8_t x_ms)
* 功 能:延時(shí)10ms
* 入口參數(shù):無(wú)
* 出口參數(shù):無(wú)
* 說(shuō) 明:
* 范 例:無(wú)
******************************************************************************************************/
void delay_100ms(void)
{
uint8_t i,j;
for(i=0;i<255;i++)//2*255個(gè)指令周期
for(j=0;j<255;j++);//2*255個(gè)指令周期
//delay_10ms共消耗 x_ms*2*255+2*x_ms個(gè)指令周期
//255*2*255+2*255=130610us=130ms
//此延時(shí)函數(shù),延時(shí)時(shí)間為130ms
//16M/8/2=1M 一個(gè)指令周期為1us
}
/******************************************************************************************************
* 名 稱(chēng):void ADC_Init(void)
* 功 能:初始化ADC
* 入口參數(shù):無(wú)
* 出口參數(shù):無(wú)
* 說(shuō) 明:ADC1的測(cè)量通道為內(nèi)部參考電壓,單次轉(zhuǎn)換模式
* 范 例:無(wú)
******************************************************************************************************/
void ADC_Init(void)
{
CLK_PCKENR2_PCKEN20=1; //國(guó)際慣例,開(kāi)啟ADC1外設(shè)時(shí)鐘
ADC1_TRIGR1_VREFINTON=1;//打開(kāi)內(nèi)部參考電壓源
ADC1_CR1_ADON=1; //wakes up the ADC from Power down mode.
ADC1_CR2_PRESC=1;//Select a sample time of 10 μs
// 0: f(ADC_CLK) = CK
// 1: f(ADC_CLK) = CK/2 //系統(tǒng)時(shí)鐘此時(shí)為默認(rèn)的16M/8=2M,這里分頻后,fadc=2M/2=1M
ADC1_SQR1_DMAOFF=1; //關(guān)閉DMA,暫時(shí)不用
ADC1_CR3_SMTP2=0x06;//采樣時(shí)間為24 ADC clock cycles,也就是24*1us=24us
//000: 4 ADC clock cycles
//001: 9 ADC clock cycles
//010: 16 ADC clock cycles
//011: 24 ADC clock cycles
//100: 48 ADC clock cycles
//101: 96 ADC clock cycles
//110: 192 ADC clock cycles
//111: 384 ADC clock cycles
ADC1_SQR1_CHSEL_S28=1; //選擇內(nèi)部參考電壓通道
ADC1_CR1_EOCIE=1;
}
void main(void)
{
ADC_Init();
asm("rim"); //enable interrupts
while(1)
{
delay_100ms();
ADC1_CR1_START=1;
delay_100ms();
delay_100ms();
delay_100ms();
delay_100ms();
}
}
/******************************************************************************************************
* 名 稱(chēng): ADC中斷
* 功 能: EOC事件處理函數(shù)
* 入口 參數(shù):無(wú)
* 出口 參數(shù):無(wú)
* 說(shuō) 明:
* 范 例:無(wú)
******************************************************************************************************/
#pragma vector=COMP_EF2_vector
__interrupt void ADC1_ISR(void)
{
static uint16_t temp=0;
PC_ODR_ODR7 ^=0x01;//輸出低電平
ADC1_SR_EOC=0;
temp = ADC1_DRH;
temp = (temp<<8)+ADC1_DRL;
VDD_Value=(uint32_t)1225*4096/temp;//得到的數(shù)值單位為mv
asm("nop");
}
復(fù)制代碼
作者:
s414545584
時(shí)間:
2017-8-24 20:22
這么好的東西咋沒(méi)人點(diǎn)贊呢???怒贊,狂贊,超贊666
作者:
zengruiqiu
時(shí)間:
2018-6-20 12:02
這么好的東西咋沒(méi)人點(diǎn)贊呢???怒贊,狂贊,超贊666
作者:
jstele
時(shí)間:
2018-6-30 09:41
學(xué)習(xí)了
作者:
Boney
時(shí)間:
2018-11-15 15:25
學(xué)習(xí)了,正需要,mark
作者:
wdp1123
時(shí)間:
2018-11-29 11:56
好東西要學(xué)習(xí)
作者:
jxchen
時(shí)間:
2019-2-15 22:59
棒棒棒
作者:
monkeg3267
時(shí)間:
2020-5-15 15:24
教大家一起來(lái)點(diǎn)贊! 挺詳細(xì)的的
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1