找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

STM8L051F3寄存器片AD驅(qū)動(dòng)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:46381 發(fā)表于 2019-3-10 18:13 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include "Config.h"
u8 VDD_Value1=0;

void AD_IO_Init()
{
  PC_DDR_DDR4 = 0;        //  設(shè)置PD4為輸入
  PC_CR1_C14 = 1;         //  設(shè)置PD4為上拉輸入
  PC_CR2_C24 = 0;         //  
}

void ADC_Init()
{
   ADC_CLK_EN();

   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_CR3_CHSEL=4;
   ADC1_SQR1_CHSEL_S28=1; //選擇內(nèi)部參考電壓通道



   ADC1_CR1_EOCIE=1;


}
#pragma vector=0x14

__interrupt void ADC1_ISR(void)

{

   static uint16_t temp=0;

  u16 VDD_Value;
   ADC1_SR_EOC=0;

   temp = ADC1_DRH;

   temp = (temp<<8)+ADC1_DRL;

   VDD_Value=(uint32_t)1225*4096/temp;//得到的數(shù)值單位為mv
   VDD_Value1=(u8)(VDD_Value/100);
   asm("nop");

}
void ADC_START(void)
{
  ADC1_CR1_START  =       1;
}
void ADC_STOP(void)         
{
//    ADC1_CR1_START  =       0;
}

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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