思维导图
练习题
1.使用ADC采样光敏电阻数值,如何根据这个数值调节LED灯亮度。
//打开定时器3的通道3,并且设置为PWM功能HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */\HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);HAL_ADC_Start(&hadc);//开启ADC采样//获取ADC值adc_val = HAL_ADC_GetValue(&hadc);vlot = adc_val / 4095.0 * 999;printf("adc_val:%d\r\n",adc_val);int val = vlot;TIM3->CCR3 = 999-val;HAL_Delay(50);}
2.总结DMA+空闲中断接收数据的使用方法
需要在STM32CubeMX中打开串口中断,在DMA设置中添加串口DMA接收,下载代码中使用HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)函数中,填入对应串口,开始接收数据,HAL_UARTEx_RxEventCallback()回调函数执行接收数据的判断结果处理