본문 바로가기

공부/STM32F1

25.[stm32f103][hal] ADC (1) - Polling 모드

728x90
반응형

0. ADC 구성

ADC 는 3가지 모드로 구성되어 있습니다.

- Polling 모드 

- IT(인터럽트) 모드

- DMA 모드

 

Polling 모드부터 올릴 예정입니다.

 

 

1.  STM32CubeMX 설정

 

 

single 모드 로 해봤습니다.

 

그리고 샘플링 시간 계산 입니다.

 

2. main.c

int fputc(int ch, FILE *f)
{
    uint8_t temp[1]={ch};
    HAL_UART_Transmit(&huart1, temp, 1, 2);
  return(ch);
}
/* USER CODE END 0 */


int main(void)
{


  /* USER CODE BEGIN 1 */
  uint32_t ADC_Val=0;
  /* 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("test_adc\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);
    ADC_Val=HAL_ADC_GetValue(&hadc1);
    printf("%d\r\n",ADC_Val);
    HAL_Delay(500);
  }
  /* USER CODE END 3 */


}

 

 

3. 소스 해석

 int fputc(int ch, FILE *f)
{
    uint8_t temp[1]={ch};
    HAL_UART_Transmit(&huart1, temp, 1, 2);
  return(ch);
}
 printf 쓰기위함 함수

 

while(!(HAL_ADCEx_Calibration_Start(&hadc1)==HAL_OK));
  
  printf("test_adc\r\n");
 Calibration 완료 후 printf 출력

 

     HAL_ADC_Start(&hadc1);
    ADC_Val=HAL_ADC_GetValue(&hadc1);
    printf("%d\r\n",ADC_Val);
    HAL_Delay(500);
 single mode  요청 할때마다 값을 가져온다

 

4. 결과

 

 

 

 

https://hnydiy.tistory.com/43?category=786244

 

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

1. STM32CubeMx 2. main.c int main(void) { /* USER CODE BEGIN 1 */ uint32_t ADC_Val[3]={0x0000,}; /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------..

hnydiy.tistory.com

https://hnydiy.tistory.com/47?category=786244

 

27.[stm32f103][hal] ADC (3) -DMA ADC

0. 파일 1. STM32CubeMx 2. 소스 설명 DMA 를 이용하여 arDMA1_ADC1[] 배열로 값을 저장 하고 64 번의 평균을 내서 USER.Adc 의 AvgADC 값에 저장한다. 3. Main.c 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1..

hnydiy.tistory.com

 

728x90
반응형