STM32F0 ADC学习
来源:互联网 发布:厦门华鑫网络 编辑:程序博客网 时间:2024/06/08 03:58
开始时候使用的是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;
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;}
0 0
- STM32F0 ADC学习
- STM32F0 ADC DMA快速采集
- STM32F0多路ADC采样中的BUG和解决方案
- 学习ADC
- STM32F0系列用timer控制ADC采样,然后DMA传输到Memory或者DAC
- STM32F0 定时器触发ADC,多通道采样、DMA传输数据的配置
- 学习笔记之ADC
- STM32 ADC学习
- STM32之ADC学习
- CC2530 ADC学习
- STM32之ADC学习
- Stm32f103 ADC 学习笔记
- STC单片机学习----ADC
- Stm32f103 ADC 学习笔记
- STM32 ADC的学习
- STM32 ADC学习
- STM32学习-ADC实验
- CC2530 ADC学习笔记
- rand和srand的用法
- 世界顶尖数据科学家看未来十年大数据发展
- 2016年暑假集训盲打首秀赛
- 效果最好的企业管理软件实施方式
- 位同步
- STM32F0 ADC学习
- 关于android studio底部的几个图标的作用
- 太用力的人跑不远
- Android 调整控件位置和大小(以textView为例,并设置字体与背景颜色)
- iOS 开发 - 播放器Demo开发记录
- ORA-12518: TNS: 监听程序无法分发客户机连接
- Python函数
- wince 贪吃蛇
- Codeforces Round #359 (Div. 2) B. Little Robber Girl's Zoo