1.思维导图
2.使用PWM+ADC光敏电阻完成光控灯的实验
int adc_val=0;//用于保存ADC采样得到的数值
float volt=0;//用于保存电压值
int main(void)
{MX_GPIO_Init();MX_DMA_Init();MX_TIM1_Init();MX_USART1_UART_Init();MX_ADC_Init();MX_TIM3_Init();HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_3);//打开定时器通道3int i=0;while (1){ //开启ADC采样HAL_ADC_Start(&hadc);//获取ADC采样的值adc_val=HAL_ADC_GetValue(&hadc);//将采样值转换为电压值volt=adc_val/4095.0f*3.3f;//通过电压改变LED灯的亮度,光照越强,电压越低,则LED灯越暗;//反之,光照越弱,电压越高,则LED灯越亮i= volt/3.3f * 999;TIM3->CCR3 = i;}}