日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]一、硬件原理電池供電通過兩個(gè)分壓電阻接地,STM32則在兩電阻中間通過ADC檢測(cè)電池電壓。(引腳BAT_DET) 二、ADC通道初始化 //初始化電池檢測(cè)ADC //開

一、硬件原理


電池供電通過兩個(gè)分壓電阻接地,STM32則在兩電阻中間通過ADC檢測(cè)電池電壓。(引腳BAT_DET)

二、ADC通道初始化
//初始化電池檢測(cè)ADC
//開啟ADC1的通道8????
//BatteryCheck---->PB0
void BatteryCheckInit()
{
??
?//先初PB0為模擬輸入
??RCC->APB2ENR|=1<<3; //使能PORTB口時(shí)鐘
??GPIOB->CRL&=0XFFFFFFF0;//PB0????anolog輸入
????//通道8????
????RCC->APB2ENR|=1<<9; //ADC1時(shí)鐘使能????
????RCC->APB2RSTR|=1<<9; //ADC1復(fù)位
????RCC->APB2RSTR&=~(1<<9);//復(fù)位結(jié)束????
????RCC->CFGR&=~(3<<14); //分頻因子清零????
????//SYSCLK/DIV2=12M ADC時(shí)鐘設(shè)置為12M,
????//
????RCC->CFGR|=2<<14; ????
????ADC1->CR1&=0XF0FFFF; //工作模式清零
????ADC1->CR1|=0<<16; //獨(dú)立工作模式
????ADC1->CR1&=~(1<<8); //非掃描模式????
????ADC1->CR2&=~(1<<1); //單次轉(zhuǎn)換模式
????ADC1->CR2&=~(7<<17);????
????ADC1->CR2|=7<<17;???? //軟件控制轉(zhuǎn)換
????ADC1->CR2|=1<<20; //使用用外部觸發(fā)(SWSTART)!!!????必須使用一個(gè)事件來觸發(fā)
????ADC1->CR2&=~(1<<11); //右對(duì)齊????
????ADC1->CR2|=1<<23; //使能溫度傳感器

????ADC1->SQR1&=~(0XF<<20);
????ADC1->SQR1&=0<<20; //1個(gè)轉(zhuǎn)換在規(guī)則序列中 也就是只轉(zhuǎn)換規(guī)則序列1 ????????????
????//設(shè)置通道1的采樣時(shí)間
????ADC1->SMPR2&=~(7<<3); //通道1采樣時(shí)間清空????
?????ADC1->SMPR2|=7<<3; //通道1 ?239.5周期,提高采樣時(shí)間可以提高精確度????

?????ADC1->SMPR1&=~(7<<18); //清除通道16原來的設(shè)置????
????ADC1->SMPR1|=7<<18; //通道16 ?239.5周期,提高采樣時(shí)間可以提高精確度????

????ADC1->CR2|=1<<0;???? //開啟AD轉(zhuǎn)換器????
????ADC1->CR2|=1<<3; //使能復(fù)位校準(zhǔn)
????while(ADC1->CR2&1<<3); //等待校準(zhǔn)結(jié)束 ????????????
??//該位由軟件設(shè)置并由硬件清除。在校準(zhǔn)寄存器被初始化后該位將被清除。 ????????
????ADC1->CR2|=1<<2; //開啟AD校準(zhǔn)????
????while(ADC1->CR2&1<<2); //等待校準(zhǔn)結(jié)束
????//該位由軟件設(shè)置以開始校準(zhǔn),并在校準(zhǔn)結(jié)束時(shí)由硬件清除
??
??Battery.BatReal = 3.95;//單位為v 電池實(shí)際電壓 ?校準(zhǔn)電壓時(shí)修改
??Battery.ADinput = 1.98;//單位為v R15和R17連接處電壓 校準(zhǔn)電壓時(shí)修改
??Battery.ADRef = 3.26;//單位為v 單片機(jī)供電電壓 ? 校準(zhǔn)電壓時(shí)修改
??Battery.Bat_K = Battery.BatReal/Battery.ADinput;//計(jì)算電壓計(jì)算系數(shù)
????Battery.overDischargeCnt = 0;
??
??printf("Batter voltage AD init ...rn");
??
} 1.配置GPIO的時(shí)鐘,模擬輸入模式
2.使能ADC時(shí)鐘,復(fù)位,寫入1結(jié)束復(fù)位。設(shè)置分頻系數(shù),為12M
3.CR1寄存器配置:設(shè)置ADC獨(dú)立模式,非掃描模式
CR2寄存器配置:A/DConverter OFF,軟件控制,使能外部事件轉(zhuǎn)換,設(shè)置右對(duì)齊,使能溫度傳感器
4.SQR1設(shè)置:配置規(guī)則通道轉(zhuǎn)換次數(shù),1次。
5.SMPR2設(shè)置通道1,SMPR1設(shè)置通道16設(shè)置取樣周期239.5
6.開啟AD轉(zhuǎn)換器,先復(fù)位校準(zhǔn),再校準(zhǔn)

三、軟件獲取ADC的值
//獲得ADC值
//ch:通道值 0~16
//返回值:轉(zhuǎn)換結(jié)果
u16 Get_Adc(u8 ch)
{
????//設(shè)置轉(zhuǎn)換序列???? ?????????
????ADC1->SQR3&=0XFFFFFFE0;//規(guī)則序列1 通道ch
????ADC1->SQR3|=ch;???????? ?????????????
????ADC1->CR2|=1<<22; //啟動(dòng)規(guī)則轉(zhuǎn)換通道
????while(!(ADC1->SR&1<<1));//等待轉(zhuǎn)換結(jié)束???? ????
????return ADC1->DR;???????? //返回adc值????
}

//獲取通道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<times;t++)
????{
????????temp_val+=Get_Adc(ch);
????}
????return temp_val/times;
}

//得到ADC采樣內(nèi)部溫度傳感器的溫度值
//返回值3位溫度值 XXX*0.1C????
int Get_Temp(void)
{????????????????
????u16 temp_val=0;
????u8 t;
????float temperate;
????for(t=0;t<20;t++)//讀20次,取平均值
????{
????????temp_val+=Get_Adc(16);//溫度傳感器為通道16
????}
????temp_val/=20;
????temperate=(float)temp_val*(3.3/4096);//得到溫度傳感器的電壓值
????temperate=(1.43-temperate)/0.0043+25;//計(jì)算出當(dāng)前溫度值????
????temperate*=10;//擴(kuò)大十倍,使用小數(shù)點(diǎn)后一位
????return (int)temperate;????
}


//返回電池電壓AD值
int GetBatteryAD()
{
?return Get_Adc_Average(8,5);
} 感覺軟件需要封裝,獲取一次,獲取多次平均值,在獲取AD電壓。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?

?

? ? ? ? ? ? ?

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

在嵌入式開發(fā)中,STM32的時(shí)鐘系統(tǒng)因其靈活性和復(fù)雜性成為開發(fā)者關(guān)注的焦點(diǎn)。然而,看似簡單的時(shí)鐘配置背后,隱藏著諸多易被忽視的陷阱,輕則導(dǎo)致系統(tǒng)不穩(wěn)定,重則引發(fā)硬件損壞。本文從時(shí)鐘源選擇、PLL配置、總線時(shí)鐘分配等關(guān)鍵環(huán)...

關(guān)鍵字: STM32 時(shí)鐘系統(tǒng)

在嵌入式系統(tǒng)開發(fā)中,STM32系列微控制器的內(nèi)部溫度傳感器因其低成本、高集成度特性,廣泛應(yīng)用于設(shè)備自檢、環(huán)境監(jiān)測(cè)等場(chǎng)景。然而,受芯片工藝差異和電源噪聲影響,其原始數(shù)據(jù)存在±1.5℃的固有誤差。本文從硬件配置、校準(zhǔn)算法、軟...

關(guān)鍵字: STM32 溫度傳感器

在能源效率與智能化需求雙重驅(qū)動(dòng)下,AC-DC轉(zhuǎn)換器的數(shù)字控制技術(shù)正經(jīng)歷從傳統(tǒng)模擬方案向全數(shù)字架構(gòu)的深刻變革?;赟TM32微控制器的PFM(脈沖頻率調(diào)制)+PWM(脈沖寬度調(diào)制)混合調(diào)制策略,結(jié)合動(dòng)態(tài)電壓調(diào)整(Dynam...

關(guān)鍵字: AC-DC STM32

當(dāng)前智能家居產(chǎn)品需求不斷增長 ,在這一背景下 ,對(duì)現(xiàn)有澆花裝置缺陷進(jìn)行了改進(jìn) ,設(shè)計(jì)出基于STM32單片機(jī)的全 自動(dòng)家用澆花機(jī)器人。該設(shè)計(jì)主要由機(jī)械結(jié)構(gòu)和控制系統(tǒng)構(gòu)成 ,機(jī)械結(jié)構(gòu)通過麥克納姆輪底盤與噴灑裝置的結(jié)合實(shí)現(xiàn)機(jī)器...

關(guān)鍵字: STM32 麥克納姆輪 安全可靠 通過性強(qiáng)

用c++編程似乎是讓你的Arduino項(xiàng)目起步的障礙嗎?您想要一種更直觀的微控制器編程方式嗎?那你需要了解一下Visuino!這個(gè)圖形化編程平臺(tái)將復(fù)雜電子項(xiàng)目的創(chuàng)建變成了拖動(dòng)和連接塊的簡單任務(wù)。在本文中,我們將帶您完成使...

關(guān)鍵字: Visuino Arduino ESP32 STM32

基于STM32與LoRa技術(shù)的無線傳感網(wǎng)絡(luò)憑借其低功耗、廣覆蓋、抗干擾等特性,成為環(huán)境監(jiān)測(cè)、工業(yè)自動(dòng)化等場(chǎng)景的核心解決方案。然而,如何在復(fù)雜電磁環(huán)境中實(shí)現(xiàn)高效休眠調(diào)度與動(dòng)態(tài)信道優(yōu)化,成為提升網(wǎng)絡(luò)能效與可靠性的關(guān)鍵挑戰(zhàn)。本...

關(guān)鍵字: STM32 LoRa

在實(shí)時(shí)控制系統(tǒng)、高速通信協(xié)議處理及高精度數(shù)據(jù)采集等對(duì)時(shí)間敏感的應(yīng)用場(chǎng)景中,中斷響應(yīng)延遲的優(yōu)化直接決定了系統(tǒng)的可靠性與性能上限。STM32系列微控制器憑借其靈活的嵌套向量中斷控制器(NVIC)、多通道直接內(nèi)存訪問(DMA)...

關(guān)鍵字: STM32 DMA

數(shù)字電源技術(shù)向高功率密度、高效率與高動(dòng)態(tài)響應(yīng)方向加速演進(jìn),STM32微控制器憑借其基于DSP庫的算法加速能力與對(duì)LLC諧振變換器的精準(zhǔn)控制架構(gòu),成為優(yōu)化電源動(dòng)態(tài)性能的核心平臺(tái)。相較于傳統(tǒng)模擬控制或通用型數(shù)字控制器,STM...

關(guān)鍵字: STM32 數(shù)字電源

STM32微控制器憑借其針對(duì)電機(jī)控制場(chǎng)景的深度優(yōu)化,成為高精度、高可靠性驅(qū)動(dòng)系統(tǒng)的核心選擇。相較于通用型MCU,STM32在電機(jī)控制領(lǐng)域的核心優(yōu)勢(shì)集中體現(xiàn)在FOC(磁場(chǎng)定向控制)算法的硬件加速引擎與PWM死區(qū)時(shí)間的動(dòng)態(tài)補(bǔ)...

關(guān)鍵字: STM32 電機(jī)控制

無線充電技術(shù)加速滲透消費(fèi)電子與汽車電子領(lǐng)域,基于Qi協(xié)議的無線充電發(fā)射端開發(fā)成為智能設(shè)備能量補(bǔ)給的核心課題。傳統(tǒng)模擬控制方案存在響應(yīng)滯后、參數(shù)調(diào)整困難等問題,而基于STM32的數(shù)字PID控制結(jié)合FOD(Foreign O...

關(guān)鍵字: STM32 無線充電
關(guān)閉