본문 바로가기

공부/STM32F1

26.[stm32f103][hal] ADC (2) - Polling Multi 모드

728x90
반응형

1. STM32CubeMx

 

2. main.c

int main(void)
{


  /* USER CODE BEGIN 1 */
  uint32_t ADC_Val[3]={0x0000,};


  /* USER CODE END 1 */


  /* MCU Configuration----------------------------------------------------------*/


  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();


  /* USER CODE BEGIN Init */


  /* USER CODE END Init */


  /* Configure the system clock */
  SystemClock_Config();


  /* USER CODE BEGIN SysInit */


  /* USER CODE END SysInit */


  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_ADC1_Init();
  MX_USART1_UART_Init();


  /* USER CODE BEGIN 2 */
  while(!(HAL_ADCEx_Calibration_Start(&hadc1)==HAL_OK));
  
  printf("http://hnydiy.tistory.com/ \r\n polling adc multi\r\n");
  /* USER CODE END 2 */


  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
  /* USER CODE END WHILE */


  /* USER CODE BEGIN 3 */
    HAL_ADC_Start(&hadc1);
    HAL_Delay(100);
    
    for(uint8_t i=0;i<3;i++){ 
        HAL_ADC_PollForConversion(&hadc1,100);
        ADC_Val[i]=HAL_ADC_GetValue(&hadc1);     
    } 


    HAL_ADC_Stop(&hadc1);


    printf("adc0 = %d, adc1 = %d, adc2 = %d\r\n",ADC_Val[0],ADC_Val[1],ADC_Val[2]);
    HAL_Delay(500);
  }
  /* USER CODE END 3 */


}

 

muti 모드는 먼가...고생에 비해 코드는 너무 간단하네요 ㅠㅠ

 

3. 결과

 

 

728x90
반응형