




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、7.1 ADC7.1 ADC的硬件結構及特征的硬件結構及特征7.2 7.2 工作模式工作模式7.3 ADC7.3 ADC中斷中斷7.4 ADC7.4 ADC寄存器寄存器7.5 ADC7.5 ADC庫函數庫函數7.6 ADC7.6 ADC程序設計程序設計l STM32F103有有2個個12位位ADC(ADC1和和ADC2),),是逐次逼近型模擬是逐次逼近型模擬/數字轉換器。數字轉換器。ADC的輸入時鐘不得的輸入時鐘不得超過超過14MHz,它是由,它是由PCLK2經分頻產生經分頻產生l 它有多達它有多達18個通道,可測量個通道,可測量16個外部和個外部和2個內部信號源。個內部信號源。l 各通道的各
2、通道的A/D轉換可以單次、連續、掃描或間斷模轉換可以單次、連續、掃描或間斷模式執行。式執行。l ADC的結果可以左對齊或右對齊方式存儲在的結果可以左對齊或右對齊方式存儲在16位位數據寄存器中。數據寄存器中。ADC123_IN0-PA0ADC123_IN1-PA1ADC123_IN2-PA2ADC123_IN3-PA3ADC12_IN4-PA4ADC12_IN5-PA5ADC12_IN6-PA6ADC12_IN7-PA7ADC12_IN8-PB0ADC12_IN9-PB1ADC12_IN9-PB1ADC123_IN10-PC0ADC123_IN10-PC0ADC123_IN11-PC1ADC12
3、3_IN11-PC1ADC123_IN12-PC2ADC123_IN12-PC2ADC123_IN13-PC3ADC123_IN13-PC3ADC12_IN14-PC4ADC12_IN14-PC4ADC12_IN15-PC5 ADC12_IN15-PC5 ADC3_IN4-PF6ADC3_IN4-PF6ADC3_IN5-PF7ADC3_IN5-PF7ADC3_IN6-PF8ADC3_IN6-PF8ADC3_IN7-PF9ADC3_IN7-PF9ADC3_IN8-PF10ADC3_IN8-PF10 1212位分辨率位分辨率轉換結束、注入轉換結束和發生模擬看門狗事件時產生中斷轉換結束、注入轉換結束
4、和發生模擬看門狗事件時產生中斷 單次和連續轉換模式單次和連續轉換模式 從通道從通道0 0到通道到通道n n的自動掃描模式的自動掃描模式 自校準自校準 帶內嵌數據一致性的數據對齊帶內嵌數據一致性的數據對齊采樣間隔可以按通道分別編程采樣間隔可以按通道分別編程 規則轉換和注入轉換均有外部觸發選項規則轉換和注入轉換均有外部觸發選項 間斷模式間斷模式 雙重模式雙重模式( (帶帶2 2個或以上個或以上ADCADC的器件的器件) ) ADCADC轉換時間:轉換時間: STM32F103xxSTM32F103xx增強型產品:時鐘為增強型產品:時鐘為56MHz56MHz時為時為1s(1s(時鐘為時鐘為72MHz
5、72MHz為為1.17s) 1.17s) 。ADCADC供電要求:供電要求:2.4V2.4V到到3.6V 3.6V ADCADC輸入范圍:輸入范圍:VREF- VREF- VIN VIN VREF+ VREF+ 規則通道轉換期間有規則通道轉換期間有DMADMA請求產生。請求產生。 通道選擇通道選擇單次轉換模式單次轉換模式連續轉換模式連續轉換模式掃描模式掃描模式間斷模式間斷模式數據對齊數據對齊雙雙ADCADC模式模式有有1616個多路通道。可以把轉換組織成兩組:個多路通道。可以把轉換組織成兩組:規規則組則組和和注入組注入組。在任意多個通道上以任意順序。在任意多個通道上以任意順序進行的一系列轉換構
6、成成組轉換。進行的一系列轉換構成成組轉換。規則組規則組由多達由多達1616個轉換組成。規則通道和它們個轉換組成。規則通道和它們的轉換順序在的轉換順序在ADC_SQRxADC_SQRx寄存器中選擇。寄存器中選擇。注入組注入組由多達由多達4 4個轉換組成。注入通道和它們個轉換組成。注入通道和它們的轉換順序在的轉換順序在ADC_JSQRADC_JSQR寄存器中選擇。寄存器中選擇。單次轉換模式下,單次轉換模式下,ADCADC只執行一次轉換。只執行一次轉換。如果一個規則通道被轉換:如果一個規則通道被轉換: 轉換數據被儲存在轉換數據被儲存在1616位位ADC_DRADC_DR寄存器中寄存器中 EOC(EO
7、C(轉換結束轉換結束) )標志被設置標志被設置 如果設置了如果設置了EOCIEEOCIE,則產生中斷。,則產生中斷。如果一個注入通道被轉換:如果一個注入通道被轉換: 轉換數據被儲存在轉換數據被儲存在1616位的位的ADC_DRJ1ADC_DRJ1寄存器中寄存器中 JEOC(JEOC(注入轉換結束注入轉換結束) )標志被設置標志被設置 如果設置了如果設置了JEOCIEJEOCIE位,則產生中斷。位,則產生中斷。 然后然后ADCADC停止。停止。 在連續轉換模式中,當前面在連續轉換模式中,當前面ADCADC轉換一結束馬上就啟轉換一結束馬上就啟動另一次轉換。動另一次轉換。如果一個規則通道被轉換:如果
8、一個規則通道被轉換: 轉換數據被儲存在轉換數據被儲存在1616位的位的ADC_DRADC_DR寄存器中寄存器中 EOC(EOC(轉換結束轉換結束) )標志被設置標志被設置 如果設置了如果設置了EOCIEEOCIE,則產生中斷。,則產生中斷。 如果一個注入通道被轉換:如果一個注入通道被轉換: 轉換數據被儲存在轉換數據被儲存在1616位的位的ADC_DRJ1ADC_DRJ1寄存器中寄存器中 JEOC(JEOC(注入轉換結束注入轉換結束) )標志被設置標志被設置 如果設置了如果設置了JEOCIEJEOCIE位,則產生中斷。位,則產生中斷。 此模式用來掃描一組模擬通道。此模式用來掃描一組模擬通道。 A
9、DCADC掃描所有被掃描所有被ADC_SQRXADC_SQRX寄存器寄存器( (對規則通道對規則通道) )或或ADC_JSQR(ADC_JSQR(對注入通道對注入通道) )選中的所有通道。選中的所有通道。在每個組的每個通道上執行單次轉換。在每個轉換結在每個組的每個通道上執行單次轉換。在每個轉換結束時,同一組的下一個通道被自動轉換。束時,同一組的下一個通道被自動轉換。如果設置了寄存器如果設置了寄存器ADC_CR2ADC_CR2中的中的CONTCONT位,轉換不會在位,轉換不會在選擇組的最后一個通道上停止,而是再次從選擇組的選擇組的最后一個通道上停止,而是再次從選擇組的第一個通道繼續轉換。第一個通
10、道繼續轉換。 規則組規則組 :此模式通過設置:此模式通過設置ADC_CR1ADC_CR1寄存器上的寄存器上的DISCENDISCEN位激活。它可以用來執行一個短序列的位激活。它可以用來執行一個短序列的n n次轉換次轉換(n=8)(nODR=0 xffffffff; while(1) ADC = Get_Adc(14); /smart開發板ADC1通道14,PC4 ADC14 = ADC*3300/4095; a1=ADC14/1000;a11=ADC%1000;a2=a11/100;a21=a11%100;a3=a21/10;a31=a21%10;a4=a31; a1=a1+0 x30;a2=
11、a2+0 x30;a3=a3+0 x30;a4=a4+0 x30;Uart1_PutChar(a1); Delay(0 x02fff);Uart1_PutChar(.); Delay(0 x002fff);Uart1_PutChar(a2); Delay(0 x002fff);Uart1_PutChar(a3); Delay(0 x002fff);Uart1_PutChar(a4); Delay(0 x002fff);Uart1_PutChar(0 x0d);Uart1_PutChar(0 x0a);Delay(0 x08fffff);void Uart1_PutChar(u8 ch) USA
12、RT_SendData(USART1, (u8) ch); if (USART_GetFlagStatus(USART1, USART_FLAG_TXE) = SET) USART_ClearFlag(USART1,USART_FLAG_TXE); void Uart1_PutString(u8 *buf , u8 len) u8 i=0; for(i=0; ilen; i+) Uart1_PutChar(*buf+); void uart_init( )USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudR
13、ate = 9600;/波特率9600USART_InitStructure.USART_WordLength = USART_WordLength_8b;USART_InitStructure.USART_StopBits = USART_StopBits_1;USART_InitStructure.USART_Parity = USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode = USART
14、_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); USART_Cmd(USART1, ENABLE); /使能串口void Adc_Init(void)void Adc_Init(void) ADC_InitTypeDef ADC_InitStructure; ADC_InitTypeDef ADC_InitStructure; RCC_ADCCLKConfig(RCC_PCLK2_Div6); RCC_ADCCLKConfig(RCC_PCLK2_Div6); ADC_DeInit(ADC1); /
15、? ADC1 ADC_DeInit(ADC1); /? ADC1 初始化初始化ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;ADC_InitStructure.ADC_ScanConvMode = DISABLE;ADC_InitStructure.ADC_ScanConvMode = DISABLE;ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;ADC_InitStructure.AD
16、C_ContinuousConvMode = DISABLE;ADC_InitStructure.ADC_ExternalTrigConv = ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;ADC_ExternalTrigConv_None;ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOf
17、Channel = 1;ADC_InitStructure.ADC_NbrOfChannel = 1;ADC_Init(ADC1, &ADC_InitStructure);ADC_Init(ADC1, &ADC_InitStructure); ADC_Cmd(ADC1, ENABLE);ADC_Cmd(ADC1, ENABLE);ADC_ResetCalibration(ADC1);ADC_ResetCalibration(ADC1);while(ADC_GetResetCalibrationStatus(ADC1);while(ADC_GetResetCalibrationS
18、tatus(ADC1);ADC_StartCalibration(ADC1);ADC_StartCalibration(ADC1);while(ADC_GetCalibrationStatus(ADC1);while(ADC_GetCalibrationStatus(ADC1); ADC_SoftwareStartConvCmd(ADC1, ENABLE);ADC_SoftwareStartConvCmd(ADC1, ENABLE); u16 Get_Adc(u8 ch) u16 Get_Adc(u8 ch) ADC_RegularChannelConfig(ADC1, ch, 1, ADC_
19、RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 ); ADC_SampleTime_239Cycles5 ); ADC_SoftwareStartConvCmd(ADC1, ENABLE);ADC_SoftwareStartConvCmd(ADC1, ENABLE); while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ); while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC );return ADC_GetConversionValue(ADC1);
20、return ADC_GetConversionValue(ADC1); T=239.5+12.5=252cylesT=239.5+12.5=252cylesvoid RCC_Configuration() /配置系統時鐘(略)/ 配置外設時鐘 RCC_APB2PeriphClockCmd (RCC_APB2Periph_USART1| RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD, ENABLE);RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1, ENABLE ); /延
21、時函數:void Delay(vu32 nCount) for(; nCount != 0; nCount-);void GPIO_Configuration(void) GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Spee
22、d_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); 1.STM32F103VB內置()個()位的AD轉換器。2. AD轉換器有()個模擬量輸入通道,其中外部通道()個,內部
23、通道()個。3. STM32F103VB的AD轉換器的轉換原理是(),轉換時間最快為()us。4. STM32F103VB的AD轉換器的轉換時鐘頻率不能超過()MHz.5. STM32F103VB的AD轉換器可將()V-()V電壓轉換成()-()的二進制數。6. ADC主要有4種轉換模式: ()、()、()和()。7. 啟動AD轉換有兩種方式: ()和()。AD轉換結束后,轉換結束標志位會置()。多個通道進行AD轉換時,可設置成()通道組或者()通道組。規則通道組最多有()個通道轉換。注入通道組最多允許()通道轉換。通過編程設置每個通道的轉換順序。轉換時間等于采樣時間加上()個時鐘周期。模擬看門狗部分用于監控檢測電壓是否超過高、低閾值電壓,若超過,可以產生()。ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;ADC_InitStructure.ADC_ScanConvMode = DISABLE;ADC_InitStructure.ADC_ScanCo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高強度及低松馳預應力鋼絞線項目合作計劃書
- 2025年骨傷科用藥合作協議書
- 2025年度遼寧省房屋租賃合同示范文本
- 2025年兒童教育資源租賃合同模板
- 2025關于標準解除勞動合同協議書范本
- 2025年(范本)租賃合同擔保協議
- 2025建筑工程施工勞務全面包合同
- 2025年彩妝化學品:粉底項目發展計劃
- 2025年愛康國賓項目合作計劃書
- 2025年雙層客房車項目建議書
- 河南會考地理試題及答案2024
- 2025年03月國家金融監督管理總局所屬事業單位公開招聘19人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 學生心理健康一生一策檔案表
- 能源儲備體系建設-深度研究
- 2024年中國工商銀行浙江省分行招聘筆試真題
- 2025年中考數學幾何模型歸納訓練:最值模型之將軍飲馬模型解讀與提分訓練(解析版)
- 北京市人民大附屬中學2025屆中考化學模擬試卷含解析
- 網線施工方案
- 2025年陜西省公民科學素質大賽考試題(附答案)
- 浙江首考2025年1月普通高等學校招生全國統考政治試題及答案
- DB3308-T 102-2022 居民碳賬戶-生活垃圾資源回收碳減排工作規范
評論
0/150
提交評論