STM32使用AD转换读取光敏电阻
光敏电阻使用的是5516,阻值是10k,网上能直接买到。
过程如下。
硬件设计
LRAO接单片机引脚,原理就是串联分压,当外界光发生变化的时候,光敏电阻的阻值发生变化,LRAO读取的就是光敏电阻分压的数值。
C4电容是用来滤除杂波降噪。
程序设计
LRAO接的是A1脚
程序使用ADC1,使用了DMA搬数据
static void POTEN_Init(void)
{
//引脚初始化
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //开启PA的时钟
GPIO_InitStructure.GPIO_Pin = RES_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模拟输入
GPIO_Init(POTEN_PORT, &GPIO_InitStructure);
}
/ADC初始化,使用ADC1 通道0和通道1 使用DMA搬运
static void ADCx_Mode_Config(void)
{
DMA_InitTypeDef DMA_InitStructure;
ADC_InitTypeDef ADC_InitStructure;