STM32F7xx外设驱动6-adc(寄存器)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | //源文件 void ADCPhyConfig() { RCC->APB2ENR |=1 <<8; //使能 ADC1 时钟 RCC->AHB1ENR |=1 <<0; //使能 PORTA 时钟 //PA5 输入模式、下拉、高速 GPIOA->MODER |= (3<<5*2); //输入模式 GPIOA->PUPDR |= (3<<5*2); //下拉 GPIOA->OSPEEDR |= (1<<6*2); //高速 RCC->APB2RSTR|=1<<8; //ADCs 复位 RCC->APB2RSTR&=~(1<<8); //复位结束 ADC->CCR = 1<<16; //ADCCLK=PCLK2/4=90/4=22.5Mhz,不超过 36Mhz ADC1->CR1 = 0; //CR1 设置清零 ADC1->CR2 = 0; //CR2 设置清零 ADC1->CR1 |= 0<<24; //12 位模式 ADC1->CR1 |= 0<<8; //非扫描模式 ADC1->CR2 &= ~(1<<1); //单次转换模式 ADC1->CR2 &= ~(1<<11); //右对齐 ADC1->CR2 |= 0<< 28; //软件触发 ADC1->SQR1 &= ~(0XF<<20); ADC1->SQR1 |= 0<<20; //1 个转换在规则序列中 也就是只转换规则序列 1 //设置通道 5 的采样时间 ADC1->SMPR2 &= ~(7<<(3*5)); //通道 5 采样时间清空 ADC1->SMPR2 |= 7<<(3*5); //通道 5 480 个周期,提高采样时间可以提高精确度 ADC1->CR2 |= 1<<0; //开启 AD 转换器 } //获得 ADC 值 //ch:通道值 0~16 //返回值:转换结果 uint16_t Get_Adc(uint8_t ch) { //设置转换序列 ADC1->SQR3&=0XFFFFFFE0; //规则序列 1 通道 ch ADC1->SQR3|=ch; ADC1->CR2|=1<<30; //启动规则转换通道 while (!(ADC1->SR&1<<1)); //等待转换结束 return ADC1->DR; //返回 adc 值 } //获取通道 ch 的转换值,取 times 次,然后平均 //ch:通道编号 //times:获取次数 //返回值:通道 ch 的 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+=Get_Adc(ch); DelayPhyMs(5); } return temp_val/times; } //头文件 /*****************************adc**************************************/ #define ADC_CH5 5 //通道 5 void ADCPhyConfig( void ); uint16_t Get_Adc(uint8_t ch); uint16_t Get_Adc_Average(uint8_t ch,uint8_t times); /**********************************************************************/ |
分类:
STM32F7xx 外设
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码