CORREREPOLLINO

Sponsor Team



C.R.G. SERVICES S.R.L.
VERONA


az. 600GROTTE-Chiaromonte


Commerciale Lucana
Senise






Gemi Aspiratori


stm32cubemx adc 예제

두 가지 예가 주어질 것입니다 : 나는 먼저 ADC 모듈의 기준 전압인 STM32F0 칩의 공급 전압을 측정하려고 합니다. 그런 다음 내장 온도 센서를 사용하여 칩의 온도를 판독하고 아날로그 입력 핀(PA1)에 적용되는 외부 아날로그 전압을 읽는 예제가 만들어집니다. ADC 변환 데이터 및 기타 내부 변수를 보려면 이 게시물에 소개된 STM Studio를 사용합니다. 모드 매개 변수를 기록합니다. DMA_NORMAL로 설정하면 전송이 완료될 때마다 HAL_ADC_Start_DMA()를 호출하여 다른 DMA 전송을 시작해야 합니다. 충분히 빨리 하지 않으면 ADC 오버런 오류가 발생하고 일부 ADC 샘플이 손실됩니다. 이 예제에서는 DMA 컨트롤러가 버퍼를 채우는 작업이 완료되면 ADC에서 새 값을 받는 순간부터 다시 시작되도록 DMA_CIRCULAR로 설정합니다. STM32Cube는 구성 및 초기화와 연결된 모든 것을 중요하게 생각하지만, 이러한 견인 및 ADC 측정과 같은 다른 작업은 우리 자신을 깨달아야합니다. 첫째, ADC 결과가 유지될 변수를 선언합니다: 라인 사이: /* 사용자 코드 BEGIN PV */ /* 개인 변수 ———————————————————*/ 및 줄: /* 사용자 코드 END PV */ 아래 줄 삽입: uint16_t adcBuffer[3]; ADC 변환 의 결과를 저장하기위한 버퍼이 설명은 우리가이 웹 사이트에 미래에 게시 할 우리의 더 복잡한 프로젝트에서 추출됩니다. 이러한 이유로 여기에 사용되지 않는 CUBE-MX에 구성된 PIN이 더 있습니다. 여기에 사용되는 회로도는 아래와 같습니다. 단일 채널 변환에 대한 연속 모드 설명: TEMP110_CAL_ADDR 및 TEMP30_CAL&Lowbar;ADDR이 데이터시트를 형성할 수 있습니다. 함수 main()에서 ADC1 주변 장치를 활성화한 다음 변환을 시작해야 합니다.

변환이 완료되기 때문에 우리는 결과 값을 분석하고 LED의 적절한 수를 켜야합니다 : 라인 사이 : /* 사용자 코드 시작 3 */ 라인 : } / * 사용자 코드 끝 3 */ 아래 줄을 삽입 : 경우 (adcBuffer[1] < adcBuffer[0]) // 어두운 – LED ….HAL_HAL_GPIO_Wr 이테핀(LD3_GPIO_포트, LD3_핀, GPIO_PIN_SET); else // 일 – LED 오프 ….HAL_GPIO_WritePin (GPIOB, GPIO_PIN_3, GPIO_PIN_RESET); HAL_Delay (10); 아래 그림은 연속 모드를 사용하지 않도록 설정했을 때 프로세스가 어떻게 진행되는지 보여 주며: 줄 사이: /* 사용자 코드 BEGIN 2 */ 및 줄: /* 사용자 코드 END 2 */ 아래 줄 삽입: HAL_ADC_Start_DMA(&hadc, (uint32_t*)adcBuffer, 3; DMA 모드에서 ADC를 시작하고 결과를 저장하는 버퍼를 선언한 한 채널의 총 변환 시간은 다음과 같이 계산됩니다(편집됨): 참고: ATOLLIC에서 이 프로젝트를 인포트하는 경우 이 메모를 읽어 보세요.

Comments are closed.