adc.c
#include "adc.h"
void Adc_Init(void)
{
ADC_InitTypeDef ADC_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1 , ENABLE ); //使能ADC1通道時鐘
RCC_ADCCLKConfig(RCC_PCLK2_Div6); //設置ADC分頻因子6 72M/6=12,ADC最大時間不能超過14M
//PA4 作為模擬通道輸入引腳
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模擬輸入引腳
GPIO_Init(GPIOA, &GPIO_InitStructure);
ADC_DeInit(ADC1); //復位ADC1,將外設 ADC1 的全部寄存器重設為缺省值
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //ADC工作模式:ADC1和ADC2工作在獨立模式
ADC_InitStructure.ADC_ScanConvMode = DISABLE; //模數轉換工作在單通道模式
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; //模數轉換工作在單次轉換模式
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //轉換由軟件而不是外部觸發啟動
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //ADC數據右對齊
ADC_InitStructure.ADC_NbrOfChannel = 1; //順序進行規則轉換的ADC通道的數目
ADC_Init(ADC1, &ADC_InitStructure); //根據ADC_InitStruct中指定的參數初始化外設ADCx的寄存器
ADC_Cmd(ADC1, ENABLE); //使能指定的ADC1
ADC_ResetCalibration(ADC1); //使能復位校準
while(ADC_GetResetCalibrationStatus(ADC1)); //等待復位校準結束
ADC_StartCalibration(ADC1); //開啟AD校準
while(ADC_GetCalibrationStatus(ADC1)); //等待校準結束
}
u16 Get_Adc(u8 ch)
{
//設置指定ADC的規則組通道,一個序列,采樣時間
ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 ); //ADC1,ADC通道,采樣時間為239.5周期
ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能指定的ADC1的軟件轉換啟動功能
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待轉換結束
return ADC_GetConversionValue(ADC1); //返回最近一次ADC1規則組的轉換結果
}
int Get_battery_volt(void)
{
int Volt;//電池電壓
Volt=Get_Adc(Battery_Ch)*3.3*11.5*100/1.5/4096; //電阻分壓,具體根據原理圖簡單分析可以得到
if(Volt>1260)Volt=1260;
return Volt;
}
adc.h
#ifndef _ADC_H
#define _ADC_H
#include "config.h"
#define Battery_Ch 4
void Adc_Init(void);
u16 Get_Adc(u8 ch);
int Get_battery_volt(void);
#endif
上一篇:STM32 SWD下載出現no target connect解決方法
下一篇:STM32之編碼器模式學習
推薦閱讀
史海拾趣
在1950年代,電子工業正處于蓬勃發展的初期。阿爾·克瑞頓,一位富有創新精神的化學家,在美國馬薩諸塞州丹佛斯市的一個實驗室里,經過無數次的試驗,終于研發出了一種名為Devcon可塑鋼修補劑的新型材料。這種材料經濟實惠、不易燃,且能夠作為焊接的替代品,迅速在電子制造和維修領域引起了廣泛關注。這就是DEVCON公司的起點,一個由創新精神和市場需求共同點燃的火花。
隨著公司實力的增強,Dantona Industries開始尋求市場擴張的機會。他們首先將目光投向了海外市場,通過參加國際展會、建立海外銷售網絡等方式,逐步打開了國際市場的大門。然而,市場擴張也帶來了新的挑戰。不同國家和地區的市場需求、文化差異、法律法規等因素都需要公司去適應和應對。在這個過程中,Dantona Industries展現了出色的市場洞察力和應變能力,成功克服了各種困難,實現了市場的穩步擴張。
APLUS Products公司始終重視品牌建設和文化傳播。公司不僅注重產品的質量和性能,還積極參與各類行業展會和公益活動,提升品牌知名度和美譽度。同時,公司還通過社交媒體等渠道與消費者進行互動,傳遞公司的價值觀和企業文化。這些舉措不僅增強了消費者對品牌的認同感和忠誠度,也為公司的長期發展奠定了堅實的基礎。
這些故事雖然是根據一般情況構建的,但它們反映了企業在發展過程中可能遇到的挑戰和機遇,以及如何通過技術創新、市場布局、合作共贏、品牌建設和文化傳播等手段來實現企業的發展目標。希望這些故事能夠為您提供一些啟示和參考。如果您需要更具體的信息,建議您查閱APLUS Products公司的官方網站或相關新聞報道。
Chiplus自成立以來,始終致力于技術創新和產品研發。公司團隊不斷深入研究SRAM和LED驅動IC的設計與開發,成功推出了多款高速度、低功率的產品。這些產品以其卓越的性能和穩定性,贏得了全球客戶的廣泛認可。同時,Chiplus還積極投入研發資源,探索新的應用領域,不斷拓展產品線,為客戶提供更多元化的解決方案。
品質是ABECO的生命線。公司始終堅持嚴格的質量管理體系,從原材料的采購到生產過程的控制,再到產品的檢測和包裝,每一個環節都嚴格把關。此外,公司還定期舉行質量培訓活動,提高員工的質量意識。這種對品質的執著追求,使得ABECO的產品在市場上始終保持著良好的口碑和競爭力。
面對智能制造的浪潮,百蓉公司積極擁抱變革。他們引進了先進的自動化設備,對生產線進行了全面升級,實現了從手工制造向智能制造的轉變。這一轉型不僅提高了生產效率,還大幅提升了產品質量和產品的一致性,使得百蓉的產品在市場上更具競爭力。
為了方便大家使用windowsce6,我們把開發所用的軟件上傳到服務器,很大(10G左右),但因為某些原因,我們暫時無法在此公開下載地址。 此處提供的wince6為破解版,里面有安裝密碼。 http://www.arm9home.net/read.php?tid-4349.html… 查看全部問答∨ |
|
目錄: 符號說明 第一章 緒論 1、什么是脈沖和脈沖電路 2、什么是數字信號和數字電路 3、脈沖數字電路的發展和應用 4、什么叫二進制 5、本書內容提要 第二章 RC電路 1、引言 2、電容 3、電容充放電規律 4、簡單RC電路分析 5、RC電路 ...… 查看全部問答∨ |
|
給喜歡玩轉linux系統或愛好嵌入式linux的朋友推薦一個項目 開源項目maxwit linux,從零開始,一步步打造整個嵌入式linux系統 沒有開放板的朋友可以在模擬器中跑 玩maxwit linux的好處類似于玩LFS——有助于理解整個linux,強化linux使用技能,無論對linux使用者還是開發者都有好處 不過與lfs或其他開源項 ...… 查看全部問答∨ |
|
求助:Gcc提示carriage return in preprocessing directive 我在PC上用Redhat自帶的gcc編譯通過的一段程序改用arm-elf-gcc編譯 在處理頭文件的時候遇到carriage return in preprocessing directive的錯誤信息 問題行都是預編譯指令 #ifndef mode_h #define mode_h "$Id_$" #endif 這是什么原因呢? ...… 查看全部問答∨ |
|
在Windows mobile 6中開發接打電話的程序使用TAPI,在接收到響鈴3聲后執行lineAnswer函數應答,但是無效。怎么實現自動摘機,或者屏蔽調系統的應答功能呢!謝謝!… 查看全部問答∨ |