Skocz do zawartości

[C] [STM32][HAL] Odczyt ADC.


OnlyP

Pomocna odpowiedź

Zaczynam przygodę z STM'ami i na samym początku przygody trafiłem na problemy.

Jako, że jest takie przyjemne urządzenie jak STM32CubeMX, które samo generuje mi rejestry, to czemu miałbym z niego nie korzystać? Pierwsze programy na zapalanie i gaszenie diodek przy pomocy przycisków, poszły jak po maśle, ale że będę chciał użyć STMa przy budowie LF'a, i nie mam zamiaru wydawać pieniędzy na komparatory skoro w mikroprocesorze jest przetwornik, to odczyty z czujników chciałbym podać właśnie na piny tego przetwornika. Zbudowałem prosty układ z 6 potencjometrami zamiast czujników i podłączyłem oscyloskop na kanały pierwszy i drugi timera 3, jako potencjalne silniki sterowane PWMem.

Uruchomiłem Cuba, wyklikałem piny od PA0 do PA5 jako ADC1_IN*, PA6 i PA7 jako PWM. Standardowo zmieniłem konfigurację ADC1 ustawiając 6 konwersji na kanały od 0 do 5 i uruchomiłem Continuous Converion Mode, ustawiłem również parametry timera PSC n 239 i Counter Period na 99, Pulse(wypełnienie) na kanałach dałem po 30. Wcześniej ustawiłem zegar na 24MHz.

Wygenerowałem kod, włączyłem eclipsa i dobra passa się skończyła. Po przejrzeniu kilku stron udało mi się dopisać:

HAL_ADC_Start(&hadc1);

i w pętli np.

c0=HAL_ADC_GetValue(&hadc1);

nie wiem, jak odwołać się do poszczególnego kanału. Próbowałem dwukropikem, czy kropką, ale nic nie dawało.

PWMa jeszcze nie inicjowałem, więc jak ktoś by był tak dobry, to też bym prosił może o jakiś wstęp jak to jest z nim w bibliotekach HALa.

Z góry dzięki za odpowiedź.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.