本系统使用了普通的ADC光照强度传感器,我们需要再CUBEMAX里面配置好ADC的相关参数,这里我们使用PB1来做光照传感器的接口,对C8T6来说也就是ADC1的第九个通道。
我们先按照上图配置,将gpio绑定到ADC1_IN9,同时使能为模拟输入(Analog)绑定好引脚之后我们来对具体ADC来配置,配置如下:
ADC的采集还是比较简单的,只有一个函数,如下:
uint16_t dong_get_adc(){
//开启ADC1
HAL_ADC_Start(&hadc1);
//等待ADC转换完成,超时为100ms
HAL_ADC_PollForConversion(&hadc1,100);
//判断ADC是否转换成功
if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1),HAL_ADC_STATE_REG_EOC)){
//读取值
return HAL_ADC_GetValue(&hadc1);
}
return 0;
}
我们使用准备好的空间接收返回值即可HAL_ADC_GetValue(&hadc1);,这个返回的是一个电压值,我们通过公式计算就能换算到相对光照值,至此我们光照强度传感器的驱动代码已经完成。