完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
void adc_init(void)
{ ADC_InitTypeDef ADC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_ADCCLKConfig(RCC_ADCCLK_PCLK_Div4);//配置ADC的时钟频率 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //ADC-IN:PA4~7 GPIO_InitStructure.GPIO_Pin= GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA,&GPIO_InitStructure); //ADC1配置 ADC_DeInit(ADC1); ADC_StructInit(&ADC_InitStructure);//结构体初始化里面包含ADC设置,例如AD位,触发模式,转换模式,对齐等 ADC_Init(ADC1, &ADC_InitStructure); // ADC Calibration ADC_GetCalibrationFactor(ADC1); // Enable the ADC1 ADC_Cmd(ADC1,ENABLE); while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADEN)); } //得到并返回ADC_index //ch:ADC通道 uint16_t adc_index_get(uint8_t ch) { uint16_t adc_index; ADC_ClearFlag(ADC1, ADC_FLAG_EOC); //设置指定ADC的规则组通道,设置它们的转化顺序和采样时间 //通道选择寄存器ADC1-》CHSELR赋值至关重要,少了没法实现多通道采集 if(ch==4) { ADC_ChannelConfig(ADC1, ADC_Channel_4 , ADC_SampleTime_239_5Cycles); ADC1-》CHSELR =ADC_Channel_4; } if(ch= =5) { ADC_ChannelConfig(ADC1, ADC_Channel_5 , ADC_SampleTime_239_5Cycles); ADC1-》CHSELR =ADC_Channel_5; } if(ch= =6) { ADC_ChannelConfig(ADC1, ADC_Channel_6 , ADC_SampleTime_239_5Cycles); ADC1-》CHSELR =ADC_Channel_6; } if(ch= =7) { ADC_ChannelConfig(ADC1, ADC_Channel_7 , ADC_SampleTime_239_5Cycles); ADC1-》CHSELR =ADC_Channel_7; } while(ADC_GetFlagStatus(ADC1, ADC_FLAG_ADRDY) == RESET); ADC_StartOfConversion(ADC1); while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)!=1){} //等待ADC转换完成 adc_index = ADC_GetConversionValue(ADC1); ADC_StopOfConversion(ADC1); return adc_index; } if条件的()里面编辑时多了一个空格,否则编辑时没法正常显示 //多次采样获得平均值 //ch:ADC通道; times:采样次数 uint16_t get_adc_average(uint8_t ch,uint8_t times) { uint32_t temp_val = 0; uint8_t t; for(t=0; t《times; t++) { temp_val += adc_index_get(ch); delay_ms(5); } return (temp_val / times); } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1975 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1760 浏览 1 评论
1232 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
819 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1776 浏览 2 评论
2015浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
889浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
318浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
670浏览 3评论
661浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-23 13:47 , Processed in 0.750718 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191