STM32多通道ADC查询模式

STM32多通道ADC查询模式

ADC配置

连续转换一定要打开!
hadc1.Init.ContinuousConvMode = ENABLE;

  hadc1.Instance = ADC1;
  hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2;
  hadc1.Init.Resolution = ADC_RESOLUTION_12B;
  hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
  hadc1.Init.ScanConvMode = ADC_SCAN_SEQ_FIXED;//扫描转换模式
  hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
  hadc1.Init.LowPowerAutoWait = DISABLE;
  hadc1.Init.LowPowerAutoPowerOff = DISABLE;
  hadc1.Init.ContinuousConvMode = ENABLE;//开启 连续转换模式
  hadc1.Init.NbrOfConversion = 1;//连续转换次数
  hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
  hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;//外部触发器
  hadc1.Init.DMAContinuousRequests = DISABLE; //连续DMA传输
  hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED;
  hadc1.Init.SamplingTimeCommon1 = ADC_SAMPLETIME_12CYCLES_5;//采样时间
  hadc1.Init.OversamplingMode = DISABLE;
  hadc1.Init.TriggerFrequencyMode = ADC_TRIGGER_FREQ_HIGH;

调用读取ADC值

unsigned int ADC_1 = 0,ADC_2 = 0;
/*
*ADC检测
*/
unsigned int get_adc(){
	HAL_ADC_Start(&hadc1);//开启ADC
	HAL_ADC_PollForConversion(&hadc1,500);//等待ADC转换完成,超时为500ms
	if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1),HAL_ADC_STATE_REG_EOC)){
		return HAL_ADC_GetValue(&hadc1); //获取读取值
  }
  return 0;
}

/*
*读取 ADC值
*/
void read_ADC(){
	for(uint8_t i=0;i<2;i++){
			if(0==i)ADC_1=get_adc();
			else ADC_2=get_adc();
	}
	HAL_ADC_Stop(&hadc1);
}

将读取到的ADC值转换为电压值

V=3.3*(ADC_1/4096)*分压数;

其他

将ADC转换为其他值如:电量,气体浓度值。需根据实际硬件写程序。
如某蓄电池电压与电量(5格)转换

	if(Battery_ADC<=2405){
		para.battery_level=1;
	}else if(Battery_ADC<=2517){
		para.battery_level=2;
	}else if(Battery_ADC<=2621){
		para.battery_level=3;
	}else if(Battery_ADC<=2725){
		para.battery_level=4;
	}else para.battery_level=5;
	//每个电池的数值是不一样的要根据测试硬件得到数据!!!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值