JiZzJiZZ国产免费A_国产午夜成人AV在线播放_亚洲欧美在线观看一区二区_91久久久久精品无嫩草影院_欧美高清一区二区三区_欧美日韩国产码高清_亚洲精品国产电影_亚洲AV无码专区亚洲AV桃
廣告招募

STM32F0 ADC學(xué)習(xí)

2025年07月10日 10:02:04      來源:江蘇瑞易通電子科技有限公司 >> 進(jìn)入該公司展臺      閱讀量:1

分享:

開始時(shí)候使用的是stdlib的庫,最近發(fā)現(xiàn)cube庫用的越來越廣泛了,遂開始使用cube庫來完成ADC的多通道采集實(shí)驗(yàn)。  

ADC 的driver 在STM32F0XX_HAL_DRIVER當(dāng)中,有stm32f0xx_hal_adc.c文件中,我們可以在stm32f0xx_hal_conf.h中開啟 宏定義 ADC 模塊。


ADC有三種工作模式,polling/ interrupt/DMA



我這里使用了polling的方式來獲取多通道的數(shù)據(jù)。



首先是要聲明兩個(gè)參數(shù)設(shè)置的結(jié)構(gòu)體


ADC_HandleTypeDef             AdcHandle;

ADC_ChannelConfTypeDef        sConfig;


[cpp] view plain copy

AdcHandle.Instance = ADC1;  

  

AdcHandle.Init.ClockPrescaler        = ADC_CLOCK_SYNC_PCLK_DIV4;  

AdcHandle.Init.LowPowerAutoWait      = DISABLE;  

AdcHandle.Init.LowPowerAutoPowerOff  = DISABLE;  

AdcHandle.Init.Resolution            = ADC_RESOLUTION_12B;  

AdcHandle.Init.ScanConvMode          = ADC_SCAN_ENABLE;  

AdcHandle.Init.DataAlign             = ADC_DATAALIGN_RIGHT;  

AdcHandle.Init.ContinuousConvMode    = ENABLE;  

AdcHandle.Init.DiscontinuousConvMode = DISABLE;  

AdcHandle.Init.ExternalTrigConv      = ADC_SOFTWARE_START;  

AdcHandle.Init.ExternalTrigConvEdge  = ADC_EXTERNALTRIGCONVEDGE_NONE;  

AdcHandle.Init.EOCSelection          = ADC_EOC_SINGLE_CONV;  

AdcHandle.Init.DMAContinuousRequests = DISABLE;//  

AdcHandle.Init.Overrun               = ADC_OVR_DATA_OVERWRITTEN;  

  

/* Initialize ADC peripheral according to the passed parameters */  

if (HAL_ADC_DeInit(&AdcHandle) != HAL_OK)  

{  

  Error_Handler();  

}  

  

  if (HAL_ADC_Init(&AdcHandle) != HAL_OK)  

{  

  Error_Handler();  

}  

  

/* ### - 2 - Start calibration ############################################ */  

if (HAL_ADCEx_Calibration_Start(&AdcHandle) != HAL_OK)  

{  

  Error_Handler();  

}  


基本的參數(shù)設(shè)置


比較重要的參數(shù)有ADC clock設(shè)置,sample cycle,ADC分辨率,多通道 scan mode設(shè)置。


ADC clock 有兩個(gè)時(shí)鐘源可以選擇,一個(gè)是內(nèi)部的14MHZ的時(shí)鐘,,另一個(gè)為APB的時(shí)鐘 為14MHZ.


get_ADC_value 為讀取AD值的模塊,形參為通道,輸入通道名稱得到該通道對應(yīng)的AD值。



float get_ADC_value(uint32_t channel)  

{  

 // uint32_t nResultDMA;  

  float  temp;  

  start_adc();  

  config_channel(channel);  

    

  HAL_ADC_Start(&AdcHandle);  

  HAL_ADC_PollForConversion(&AdcHandle,1);  

    

  temp=HAL_ADC_GetValue(&AdcHandle);  

  HAL_ADC_Stop(&AdcHandle);  

  //temp=temp*3/4096;  

  return temp;  

  

}  


版權(quán)與免責(zé)聲明:
1.凡本網(wǎng)注明"來源:中美貿(mào)易網(wǎng)"的所有作品,版權(quán)均屬于中美貿(mào)易網(wǎng),轉(zhuǎn)載請必須注明中美貿(mào)易網(wǎng)。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
2.企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
3.本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品來源,并自負(fù)版權(quán)等法律責(zé)任。 4.如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系。

JiZzJiZZ国产免费A_国产午夜成人AV在线播放_亚洲欧美在线观看一区二区_91久久久久精品无嫩草影院_欧美高清一区二区三区_欧美日韩国产码高清_亚洲精品国产电影_亚洲AV无码专区亚洲AV桃