思维导图
1.使用ADC采样光敏电阻数值,如何根据这个数值调节LED灯亮度。
HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_3);//打开定时器3的通道3并且设置为PWM功能/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */int adc_val = 0;while (1){HAL_ADC_Start(&hadc);//打开ADC采样adc_val = HAL_ADC_GetValue(&hadc);printf("%d\r\n",adc_val);adc_val = adc_val/4096.0f*999;TIM3->CCR3 = adc_val;HAL_Delay(100);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}
2.总结DMA+空闲中断接收数据的使用方法
当数据在一定时间内没有接收到数据会产生空闲中断,可以在空闲中断中处理数据。
以DMA+空闲中断的方式接收数据:HAL_UARTEx_ReceiveToIdle_DMA()
中断函数:HAL_UARTEx_RxEventCallback()
适用于数据量大且数据长度不确定的情况下