Komentator Napisano Maj 3, 2016 Udostępnij Napisano Maj 3, 2016 Tym razem omówimy konfigurację przetwornika ADC, odkryjemy podstawy współpracy z DMA oraz nauczymy się korzystać z STMStudio! Mierząc napięcie możemy np. monitorować stan zasilania urządzenia, czy odczytywać informacje z czujników analogowych. Rozwiązanie okazuje się szczególnie użyteczne, jeśli dodatkowo do pracy zaprzęgniemy moduł DMA. UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.Przeczytaj całość »Poniżej znajdują się komentarze powiązane z tym wpisem. Cytuj Link do komentarza Share on other sites More sharing options...
Svartskogen Maj 4, 2016 Udostępnij Maj 4, 2016 Cześć! Dzięki za kurs, opisujesz wszystko bardzo przystępnie. Zauważyłem jeden babol. W sekcji obsługi poprzez przerwanie, w funkcji HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) przekazujesz wskaźnik, a następnie korzystasz z operatora wyłuskania adresu, co jest niepoprawne. Zamiast: PomiarADC = HAL_ADC_GetValue(&hadc1); powinno być: PomiarADC = HAL_ADC_GetValue(hadc1); Pozdrawiam i dziękuję za kurs 😉 Cytuj Link do komentarza Share on other sites More sharing options...
Harnas Maj 4, 2016 Udostępnij Maj 4, 2016 Nie jest do końca źle. Po prostu autor użył zamiast wskaźnika otrzymanego jako argument HAL_ADC_ConvCpltCallback o nazwie "hadc", od razu struktury o nazwie "hadc1". Poprawnie kod powinien wyglądać tak: PomiarADC = HAL_ADC_GetValue(hadc); Cytuj Link do komentarza Share on other sites More sharing options...
Svartskogen Maj 4, 2016 Udostępnij Maj 4, 2016 Ha, w kodzie zmieniłem, a tutaj dałem stary parametr funkcji 😉 Oczywiście masz rację! Pozdrawiam 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
grizka Maj 4, 2016 Udostępnij Maj 4, 2016 blad jest tu uint16_t Joystick[2]; jak dwu elementowa tablica to powinno byc uint16_t Joystick[1]; ... Joystick[0] = 100; Joystick[1] = 5050; Cytuj Link do komentarza Share on other sites More sharing options...
Chumanista Maj 4, 2016 Udostępnij Maj 4, 2016 grizka, nie? Tablice są numerowane od 0, ale ich wymiar podaje się normalnie! 1 Cytuj Link do komentarza Share on other sites More sharing options...
piotr2705 Maj 5, 2016 Udostępnij Maj 5, 2016 To i ja dołożę swoje przysłowiowe 5 gr. HAL_ADC_Start_DMA(&hadc1, (uint32_t*)Joystick, 2); Tak powinien wyglądać poprawnie kod dla DMA w przykładzie z joystickiem. Błędy ujawniły się dopiero podczas korzystania z Keila. Układ z któego korzystam: STM32F4 Discovery 1 Cytuj Link do komentarza Share on other sites More sharing options...
Sowa Maj 8, 2016 Udostępnij Maj 8, 2016 A jak zrobić pomiar z kilku kanałów ADC1 w trybie blokującym? Dziękuje za kurs, brakowało czegoś takiego Cytuj Link do komentarza Share on other sites More sharing options...
Bartek_Kurosz Maj 9, 2016 Udostępnij Maj 9, 2016 To i ja dołożę swoje przysłowiowe 5 gr. HAL_ADC_Start_DMA(&hadc1, (uint32_t*)Joystick, 2); Tak powinien wyglądać poprawnie kod dla DMA w przykładzie z joystickiem. Błędy ujawniły się dopiero podczas korzystania z Keila. Układ z któego korzystam: STM32F4 Discovery Hmm, nigdy nie trafiłem na takie problemy w Keilu, chociaż korzystałem z niego dość krótko (kilka miesięcy). Niemniej jednak fakt - funkcja przyjmuje jako argument typ uint32_t*, więc chcąć być zupełnie poprawnym, należałoby to jawnie zrzutować, tak jak to zaproponowałeś. Nigdy nie spotkałem się z tym problemem w Eclipse. A jak zrobić pomiar z kilku kanałów ADC1 w trybie blokującym? Dziękuje za kurs, brakowało czegoś takiego Postaram się odpowiedzieć na Twoje pytanie jak tylko czas mi na to pozwoli! Cytuj Link do komentarza Share on other sites More sharing options...
komarekzm Maj 15, 2016 Udostępnij Maj 15, 2016 Nie wiem czemu, ale mam problem z STM Studio. Nie mogę wybrać zadeklarowanych zmiennych z pliku z rozszerzeniem .elf ponieważ STM Studio ich nie widzi. Gdy wskazuje mu plik z projektu ze stronki to działa tak jak powinno. Winny w tym wypadku jest kompilator, że nie tworzy mi tych zmiennych ? Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Maj 15, 2016 Udostępnij Maj 15, 2016 komarekzm, osobiście nie miałem takiego problemu, więc tylko mogę doradzić, abyś sprawdził, czy na 100% wybierasz odpowiedni plik. Może sięgasz np. do złego katalogu (np. starej wersji projektu, gdy nie było tych zmiennych)? Takie błędy są najprostsze, a można zmarnować na nich najwięcej czasu 😉 Cytuj Link do komentarza Share on other sites More sharing options...
komarekzm Maj 15, 2016 Udostępnij Maj 15, 2016 Strasznie to jest frustrujące . Rozgryzasz zawiłe wzory, rozpisujesz sobie wszystko, czujesz że z każdym wzorem przybywa skill, a tu coś takiego :/ . Udało mi się wkąńcu i teraz działa 😃 , ale nie wiem dlaczego wcześniej nie chciało zadziałać , mianowicie skompilowałem projekt za pomocą "Build all", przedtem kompilowałem za pomocą "Build project" (klikając prawy przyciskiem na główny folder projektu). Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Maj 15, 2016 Udostępnij Maj 15, 2016 komarekzm, grunt, że się udało! Dzięki, że podzieliłeś się rozwiązaniem tego problemu - zapewne pomoże w przyszłości innym 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
Bartek_Kurosz Maj 24, 2016 Udostępnij Maj 24, 2016 komarekzm, jesteś pewien, że chciałeś obserwować zmienne globalne (tylko do takich STM Studio ma dostęp)? Cytuj Link do komentarza Share on other sites More sharing options...
komarekzm Maj 28, 2016 Udostępnij Maj 28, 2016 Moją wcześniejszą wiadomość można wrzucić do kosza. Później drugi raz napotkałem się na ten problem i bindowanie za pomoc build all nie pomogło. Zdecydowanie pomogło zapisanie maina, chociażby za pomoc CTRL + s i później skompilowanie. 1 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!