国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

歷史上的今天

今天是:2024年09月07日(星期六)

2020年09月07日 | STM32之ADC基礎(chǔ)LCD顯示

發(fā)布者:自由夢想 來源: eefocus關(guān)鍵字:STM32  ADC  LCD顯示 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

實(shí)驗(yàn):通過 ADC1 的通道

5(PA5)來讀取外部電壓值,并顯示在LCD上


1.ADC初始化函數(shù)解讀


void  Adc_Init(void)

{    

//先定義三個(gè)結(jié)構(gòu)體

  GPIO_InitTypeDef  GPIO_InitStructure;

ADC_CommonInitTypeDef ADC_CommonInitStructure;

ADC_InitTypeDef       ADC_InitStructure;

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOA時(shí)鐘

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); //使能**ADC1**時(shí)鐘


  //先初始化ADC1通道5 IO口

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;//PA5 通道5

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;//模擬輸入

  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;//不帶上下拉

  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化  

 

RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1,ENABLE);   //ADC1復(fù)位

RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1,DISABLE); //復(fù)位結(jié)束  

 

  ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;//獨(dú)立模式

  ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;//兩個(gè)采樣階段之間的延遲5個(gè)時(shí)鐘

  ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled; //DMA失能

  ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div4;//預(yù)分頻4分頻。ADCCLK=PCLK2/4=84/4=21Mhz,ADC時(shí)鐘最好不要超過36Mhz 

  ADC_CommonInit(&ADC_CommonInitStructure);//初始化

  ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;//12位模式

  ADC_InitStructure.ADC_ScanConvMode = DISABLE;//非掃描模式

  ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;//關(guān)閉連續(xù)轉(zhuǎn)換

  ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//禁止觸發(fā)檢測,使用軟件觸發(fā)

  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//右對齊

  ADC_InitStructure.ADC_NbrOfConversion = 1;//1個(gè)轉(zhuǎn)換在規(guī)則序列中 也就是只轉(zhuǎn)換規(guī)則序列1 

  ADC_Init(ADC1, &ADC_InitStructure);//ADC初始化

  ADC_Cmd(ADC1, ENABLE);//開啟AD轉(zhuǎn)換器

}


//獲得ADC值

//ch: @ref ADC_channels 

//通道值 0~16取值范圍為:ADC_Channel_0~ADC_Channel_16

//返回值:轉(zhuǎn)換結(jié)果

u16 Get_Adc(u8 ch)   

{

  //設(shè)置指定ADC的規(guī)則組通道,一個(gè)序列,采樣時(shí)間

ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_480Cycles ); //ADC1,ADC通道,480個(gè)周期,提高采樣時(shí)間可以提高精確度     

  

ADC_SoftwareStartConv(ADC1); //使能指定的ADC1的軟件轉(zhuǎn)換啟動(dòng)功能

 

while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待轉(zhuǎn)換結(jié)束


return ADC_GetConversionValue(ADC1); //返回最近一次ADC1規(guī)則組的轉(zhuǎn)換結(jié)果

}

//獲取通道ch的轉(zhuǎn)換值,取times次,然后平均 

//ch:通道編號(hào)

//times:獲取次數(shù)

//返回值:通道ch的times次轉(zhuǎn)換結(jié)果平均值

u16 Get_Adc_Average(u8 ch,u8 times)

{

u32 temp_val=0;

u8 t;

for(t=0;t {

temp_val+=Get_Adc(ch);

delay_ms(5);

}

return temp_val/times;


LCD入口參數(shù)



```//顯示字符串

//x,y:起點(diǎn)坐標(biāo)

//width,height:區(qū)域大小  

//size:字體大小

//*p:字符串起始地址   

void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p)

{         

u8 x0=x;

width+=x;

height+=y;

    while((*p<='~')&&(*p>=' '))//判斷是不是非法字符!

    {       

        if(x>=width){x=x0;y+=size;}

        if(y>=height)break;//退出

        LCD_ShowChar(x,y,*p,size,0);

        x+=size/2;

        p++;

    }  

}









```c

//主函數(shù):

int main(void)

//1,不用變的函數(shù)

  u16 adcx;

float temp;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組2

delay_init(168);    //初始化延時(shí)函數(shù)

uart_init(115200); //初始化串口波特率為115200

LED_Init(); //初始化LED 

  LCD_Init();         //初始化LCD接口

Adc_Init();         //初始化ADC

POINT_COLOR=RED; 

//2,LCD顯示部分

LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");

LCD_ShowString(30,70,200,16,16,"ADC TEST");

LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");

LCD_ShowString(30,110,200,16,16,"2014/5/6");   

POINT_COLOR=BLUE;//設(shè)置字體為藍(lán)色

LCD_ShowString(30,130,200,16,16,"ADC1_CH5_VAL:");       

LCD_ShowString(30,150,200,16,16,"ADC1_CH5_VOL:0.000V"); //先在固定位置顯示小數(shù)點(diǎn)      

while(1)

adcx=Get_Adc_Average(ADC_Channel_5,20);//獲取通道5的轉(zhuǎn)換值,20次取平均

LCD_ShowxNum(134,130,adcx,4,16,0);    //顯示ADCC采樣后的原始值

temp=(float)adcx*(3.3/4096);          //獲取計(jì)算后的帶小數(shù)的實(shí)際電壓值,比如3.1111

adcx=temp;                            //賦值整數(shù)部分給adcx變量,因?yàn)閍dcx為u16整形

LCD_ShowxNum(134,150,adcx,1,16,0);    //顯示電壓值的整數(shù)部分,3.1111的話,這里就是顯示3

temp-=adcx;                           //把已經(jīng)顯示的整數(shù)部分去掉,留下小數(shù)部分,比如3.1111-3=0.1111

temp*=1000;                           //小數(shù)部分乘以1000,例如:0.1111就轉(zhuǎn)換為111.1,相當(dāng)于保留三位小數(shù)。

LCD_ShowxNum(150,150,temp,3,16,0X80); //顯示小數(shù)部分(前面轉(zhuǎn)換為了整形顯示),這里顯示的就是111.

LED0=!LED0;

delay_ms(250);

}

}


關(guān)鍵字:STM32  ADC  LCD顯示 引用地址:STM32之ADC基礎(chǔ)LCD顯示

上一篇:STM32——時(shí)鐘
下一篇:MDK5 打開程序 提示錯(cuò)誤 device not found device

推薦閱讀

價(jià)格戰(zhàn)落幕 互聯(lián)網(wǎng)電視競爭進(jìn)入下半場  9月5日,歐洲最大的電子消費(fèi)品展——柏林國際電子消費(fèi)品展覽會(huì)(以下簡稱“IFA”)落下帷幕。中外彩電廠商也是“八仙過海”,紛紛展示自己最新的電視產(chǎn)品,折射出互聯(lián)網(wǎng)電視行業(yè)的新動(dòng)態(tài)。最新數(shù)據(jù)顯示,市場份額萎縮至10%,互聯(lián)網(wǎng)電視市場仍然沒有回暖。有的企業(yè)改名后繼續(xù)推出新品來爭奪市場,比如樂視;有的企...
今天在畫原理圖的時(shí)候,發(fā)現(xiàn)了一個(gè)問題,無線模塊是3.3v的,而在這個(gè)板子上我還要連著5v的點(diǎn)陣屏,為此我想到分電源,讓P0口接3.3v,其他的口接5v。但是我用的是AT89C51的芯片,只有一個(gè)VCC端,引腳圖如下:經(jīng)過查閱資料之后,在經(jīng)過穩(wěn)壓電路之后,電壓變成了3.3V,這時(shí)候就可以通過一個(gè)排針來設(shè)置電壓這樣,P2口就接的電壓是3.3v,其他的I/O口的電壓是5v。
近年來,發(fā)展智能工廠成為全球制造業(yè)的顯學(xué),傳統(tǒng)的測試已經(jīng)不能滿足時(shí)代發(fā)展需求,終將面臨淘汰。隨著人力短缺、工資上漲、產(chǎn)品交期越來越短、市場需求變動(dòng)大等問題出現(xiàn),制造業(yè)正面臨新一波轉(zhuǎn)型挑戰(zhàn),如何在控制生產(chǎn)成本的同時(shí),還能提高生產(chǎn)力與效率,則是轉(zhuǎn)型的主要目的。未來的工廠會(huì)是怎樣的呢?試想下工廠里面每個(gè)系統(tǒng),每個(gè)設(shè)備,每個(gè)材料都能夠互...
LIN作為一種常用的汽車網(wǎng)絡(luò)協(xié)議,也被列為ZDS2022示波器完全免費(fèi)開放的協(xié)議之一,今天我們就來看下ZDS2022示波器是如何對LIN協(xié)議進(jìn)行觸發(fā)與解碼的吧。向示波器輸入LIN協(xié)議信號(hào),按下【Trigger】鍵,將觸發(fā)方式設(shè)為普通觸發(fā),觸發(fā)類型設(shè)為LIN,按下協(xié)議參數(shù),設(shè)置正確的觸發(fā)源與波特率,其中ZDS2022的LIN協(xié)議也支持波特率自定義的設(shè)置,用戶可根據(jù)自己的需...

史海拾趣

小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved