1.总结串口的发送和接收功能使用到的函数
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
2.总结DMA的作用,和DMA+空闲中断的使用方式
当发送的数据量太大的时候会导致CPU一直在发送数据,无法去处理别的事情。
使用DMA来进行数据的发送。
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size
3.使用PWM
            
            
              cpp
              
              
            
          
           while (1)
  {
    /* USER CODE END WHILE */
		
		
		HAL_ADC_Start(&hadc);
		adc_val = HAL_ADC_GetValue(&hadc);
		
		int i=((adc_val/ 4095.0f)*999* 2)-900;
TIM3->CCR3 = i ;
			TIM14->CCR1= i ;
		printf("黑暗强度:%d\r\n", i );
		HAL_Delay(200);
		
		
		
		
    /* USER CODE BEGIN 3 */
  }
        +ADC光敏电阻完成光控灯的实验