91视频丝瓜-91视频完整版高清-91视频网-91视频网店-91视频网或将从此无大神-91视频网入口

您好,歡迎訪問上海現易電子元器件有限公司網站!

021-51870898
021-51870898   18019251567
4新聞資訊
您的位置: 首頁 ->  新聞資訊 -> 單片機

?STM32F0 ADC學習

文章出處:單片機 責任編輯:上海現易電子元器件有限公司 發表時間:2020-11-10

開始時候使用的是stdlib的庫,最近發現cube庫用的越來越廣泛了,遂開始使用cube庫來完成ADC的多通道采集實驗。  

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


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



我這里使用了polling的方式來獲取多通道的數據。



首先是要聲明兩個參數設置的結構體


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();  

}  


基本的參數設置


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


ADC clock 有兩個時鐘源可以選擇,一個是內部的14MHZ的時鐘,,另一個為APB的時鐘 最大為14MHZ.


get_ADC_value 為讀取AD值的模塊,形參為通道,輸入通道名稱得到該通道對應的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;  

  

}  


上?,F易電子元器件有限公司 版權所有 未經授權禁止復制或鏡像

CopyRight 2020-2025 www.urqm.cn All rights reserved   滬ICP備2020031792號

友情鏈接:

電話

易經理

18019251567

微信

易經理

易經理

頂部

咨詢
主站蜘蛛池模板: 国产97色在线 | 日韩 | 射精区-区区三区 | 神马午夜福利线及电影 | 国产色婷婷亚洲 | 精品一区二区三区的国产在线观看 | 久久免费久久 | 性裸交A片一区二区三区 | 亚洲精品久久久久久中女字幕 | jizzjizzjizzjizz日本 | 在线观看视频99 | 美国人成毛片在线播放 | 免费黄色欧美 | 黄色三级毛片视频 | 欧美日韩精品一区二区三区不卡 | 国产精品AV国片偷人妻麻豆 | 狂野欧美激情性XXXX在线观看 | 国产二级一片内射视频插放 | 邻居寂寞人妻中文字幕 | 午夜精品久久久久久久 | 免费无码无遮挡永久色情聊天 | 亚洲国产日韩欧美视频二区 | 99热久久爱五月天婷婷 | 成人理伦| 免费人成黄页在线观看日本 | 色琪琪久久综合网天天 | 国产精品久久久久不卡绿巨人 | 国产福利视频在线精品 | 福利视频你懂的 | 天堂中文资源在线地址 | 2020最新无码国产在线视频 | 成人美女黄网站色大色费 | 国产123区在线视频观看 | 国产亚洲日韩精品激情 | 无码日韩人妻精品久久蜜桃免费 | 滨崎真绪 | 欧美亚洲偷图色综合 | 国产福利一区二区三区在线观看 | 婷婷我也去俺也去狠狠爱 | 亚洲字幕AV一区二区三区四区 | 无限观看韩国动漫免费观看大全 | 精品久久日产国产一二三区 |