內部12位ADC是一種逐次逼近型模擬數字轉換器。
它有多達18個通道,可測量16個外部和2個內部信號源。各通道的A/D轉換可以單次、連續、掃描或間斷模式執行。ADC的結果可以左對齊或右對齊方式存儲在16位數據寄存器中。
模擬看門狗特性允許應用程序檢測輸入電壓是否超出用戶定義的高/低閥值。
ADC的輸入時鐘不得超過14MHz,它是由PCLK2經分頻產生。
// ADC 轉換完成中斷服務程序
void ADC_IRQHandler(void)
{
if(ADC_GetITStatus(RHEOSTAT_ADC,ADC_IT_EOC)==SET)
{
// 讀取ADC的轉換值
ADC_ConvertedValue = ADC_GetConversionValue(RHEOSTAT_ADC); // ADC_ConvertedValue是全局變量}
ADC_ClearITPendingBit(RHEOSTAT_ADC,ADC_IT_EOC);}
static void ADC_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
// 使能 GPIO 時鐘
RCC_AHB1PeriphClockCmd(RHEOSTAT_ADC_GPIO_CLK, ENABLE);
GPIO_InitStructure.GPIO_Pin = RHEOSTAT_ADC_GPIO_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; //不上拉不下拉
GPIO_Init(RHEOSTAT_ADC_GPIO_PORT, &GPIO_InitStructure);
}static void ADC_Mode_Config(void)
{
ADC_InitTypeDef ADC_InitStructure;
ADC_CommonInitTypeDef ADC_CommonInitStructure;
// 開啟ADC時鐘
RCC_APB2PeriphClockCmd(RHEOSTAT_ADC_CLK , ENABLE);// -------------------ADC Common 結構體 參數 初始化------------------------
// 獨立ADC模式
ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;
// 時鐘為fpclk x分頻
ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2;
// 禁止DMA直接訪問模式
ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;
// 采樣時間間隔
ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_20Cycles;
ADC_CommonInit(&ADC_CommonInitStructure);
// -------------------ADC Init 結構體 參數 初始化--------------------------
ADC_StructInit(&ADC_InitStructure);
// ADC 分辨率
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
// 禁止掃描模式,多通道采集才需要
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
// 連續轉換
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
//禁止外部邊沿觸發
ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
//外部觸發通道
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;
//數據右對齊
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
//轉換通道 1個
ADC_InitStructure.ADC_NbrOfConversion = 1;
ADC_Init(RHEOSTAT_ADC, &ADC_InitStructure);
//---------------------------------------------------------------------------
// 配置 ADC 通道轉換順序為1,第一個轉換,采樣時間為3個時鐘周期
ADC_RegularChannelConfig(RHEOSTAT_ADC, RHEOSTAT_ADC_CHANNEL, 1, ADC_SampleTime_56Cycles);
// ADC 轉換結束產生中斷,在中斷服務程序中讀取轉換值
ADC_ITConfig(RHEOSTAT_ADC, ADC_IT_EOC, ENABLE);
// 使能ADC
ADC_Cmd(RHEOSTAT_ADC, ENABLE);
//開始adc轉換,軟件觸發
ADC_SoftwareStartConv(RHEOSTAT_ADC);
}// 配置中斷優先級
static void ADC_NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_InitStructure.NVIC_IRQChannel = Rheostat_ADC_IRQ;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
ADC配置過程如上:
1.配置GPIO
2.配置ADC工作模式等
3.ADC中斷配置
/********調用在主函數聲明一次以上三個函數,在 用ADC_ConvertedValue取值即可********************/
上一篇:STM32之TIMER基本定時器應用
下一篇:stm32時鐘及其滴答定時器
推薦閱讀
史海拾趣
隨著電子技術的飛速發展,軍事裝備也在不斷升級。Alpha Industries敏銳地捕捉到了這一趨勢,開始將電子技術應用于其軍事服裝設計中。例如,公司研發了一款帶有GPS定位功能的飛行夾克,幫助飛行員在復雜環境中快速定位。此外,Alpha Industries還利用電子傳感器技術,開發出能夠監測士兵體溫和心率的戰地風衣,為軍隊提供更為全面的保障。
為了滿足全球客戶的需求,Cembre SPA制定了國際化戰略,開始在全球范圍內拓展業務。公司設立了多個海外分支機構,與當地的合作伙伴建立了緊密的合作關系。通過全球化的銷售網絡和本地化的服務支持,Cembre SPA的產品逐漸打入了國際市場,贏得了全球客戶的信賴。
在激烈的市場競爭中,BELLING LEE公司始終堅持品質至上的原則。公司從原材料采購、生產制造到售后服務都嚴格把關,確保每一款產品都能達到高品質標準。這種對品質的執著追求贏得了客戶的信任和好評,也為公司贏得了良好的口碑和品牌形象。
隨著電子市場的不斷發展和消費者需求的多樣化,BELLING LEE公司意識到單一的產品線已無法滿足市場需求。于是,公司開始積極拓展產品線,推出了包括智能手機、平板電腦、智能家居設備等一系列新產品。這些新產品不僅滿足了消費者的多樣化需求,也進一步鞏固了公司在電子市場的領先地位。
2016年3月1日,DURACELL公司正式成為伯克希爾·哈撒韋集團的一部分。這一重要事件標志著DURACELL公司在電子行業的地位得到了進一步鞏固和提升。伯克希爾·哈撒韋集團是全球知名的投資公司之一,其強大的資本實力和市場影響力將為DURACELL公司提供更多的發展機遇和挑戰。在伯克希爾·哈撒韋的支持下,DURACELL公司將繼續致力于推動電池技術的創新和發展,為全球消費者提供更優質的產品和服務。
DURACELL公司自成立以來,一直致力于提供高品質的電池產品。公司不斷投入研發資源,推動電池技術的創新。金霸王堿性電池以其“卓越品質,持久電力”的出眾品質行銷全球近百個國家和地區。此外,DURACELL公司還積極拓展產品線,生產和銷售鋰電池等高性能電池產品,以滿足不同領域的需求。
摘 要:應用力與位移傳感器和計算機技術,研制了轎車車門關閉力—位移自動測量系統。該系統能夠同時采集關門過程中車門的關門力和位移。實測結果表明,該測量系統結構簡單、操作方便,測量精度滿足實際要求。 關鍵詞:車門;傳感器;關閉力;位 ...… 查看全部問答∨ |
項目簡介 江蘇省常熟市 吳棟梁 1 技術項目名稱: 超音頻寬帶功率正弦波逆變電源;2 項目所屬技術領域: 電力電子變流技術;3 項目現處發展階段: 中試前期,工業化前期,應用產品后續研發階 ...… 查看全部問答∨ |
請教高手怎么解決將linux系統移植到6410開發板上usb不能用的問題 如題:將android-linux-2.6.28的系統移植到s3c6410開發板上usb不能用 編譯通過,初始化也通過,可是一插上U盤就報錯: 提示錯誤: usb 1-1: new full speed USB device using s3c2410-ohci and address 2 usb 1-1: device descriptor read/64, ...… 查看全部問答∨ |
|
剛剛看到的,上傳來給大家看看 壓縮包已經重新打包上傳,下載后解壓到同一個文件里就OK! [ 本帖最后由 zhandetian 于 2010-8-12 10:43 編輯 ]… 查看全部問答∨ |
|
在確定硬件電路,驅動程序都沒錯的情況下,不知為何每次讀SST25V016B寄存器的結果為0xFF;更不用說寫單元數據了; 希望做過SST25V016B的大神們幫幫忙啊! … 查看全部問答∨ |