logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[STM32F7][C] - Jakie darmowe GUI na STM32F7-Discovery ?

mrh 19 Gru 2015 18:51 5010 31
  • #1 15254012
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    Poszukuję darmowego GUI, ale nie żeby było jakieś toporne, tylko w miarę ładne. Najlepiej jeszcze łatwe do zaimplementowania i edytor do projektowania "ekranów", wiem duże wymogi.
    Znalazłem parę, ale same płatne. A jak już jakieś darmowe to takie kanciaste.
  • #2 15264421
    revcorey
    Poziom 12  
    Posty: 70
    Pomógł: 2
    Ocena: 2
    STemwin bo się stm electronics dogadał z segger. Sam jeszcze nie korzystałem.
  • #3 15266865
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    Próbuję jakoś to GUI opanować, ale na marne. Nigdzie nie mogę znaleźć żadnego tutoriala, bo na oko jakoś mi nie idzie.
  • #4 15267106
    revcorey
    Poziom 12  
    Posty: 70
    Pomógł: 2
    Ocena: 2
    Wiem do bibliotek dla F7 czy truestudio czy mbed nie ma specjalnie materiałów i na oko trzeba pisać.
  • #5 15275500
    tomzor
    Poziom 15  
    Posty: 69
    Pomógł: 5
    Ocena: 3
    STemwin są bibliotekami uniwersalnymi , pozostaje tylko podłączyć wyświetlacz i komunikacja z tym wyświetlaczem, nawet biblioteki przeznaczone dla procesorów NXP
    https://www.lpcware.com/content/project/emwin-graphics-library powinny działać z STM (sam testowałem).
    Przykłady można znaleźć na stronie seggera
    https://www.segger.com/emwin-widgets.html
    https://www.segger.com/emwin-samples.html
    i oczywiście spory (ilość stron) plik pdf opisujący te biblioteki.

    Natomiast przykład zastosowania STemwin do STM32F7- Discovery powinny być np w STM32Cube_FW_F7_V1.3.0
  • #6 15278752
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    tomzor napisał:
    Natomiast przykład zastosowania STemwin do STM32F7- Discovery powinny być np w STM32Cube_FW_F7_V1.3.0

    Oczywiście, że jest przykład tego GUI, ale dla mnie niezrozumiały.

    tomzor napisał:
    STemwin są bibliotekami uniwersalnymi , pozostaje tylko podłączyć wyświetlacz i komunikacja z tym wyświetlaczem, nawet biblioteki przeznaczone dla procesorów NXP
    https://www.lpcware.com/content/project/emwin-graphics-library powinny działać z STM (sam testowałem).

    Napisz w skrócie jak to przerobić.
  • #7 15278887
    michcior
    Poziom 30  
    Posty: 1132
    Pomógł: 159
    Ocena: 462
    @tamzor
    Obrzydliwe są te widżety. Jakby w życiu nie widzieli nic poza Windowsem sprzed 20 lat. Tyle się zmieniło w świecie Apple pokazał, że można zupełnie inaczej, że urządzenia mobilne wymagają innego podejścia niż "Windows Mobile". Inni też wyczyścili umysły i zaczęli projektować od nowa.
    Powstał trend "flat design" jako alternatywa dla 3D. GUI ma wyglądać "pięknie"!
    A tu takie kloce. GUI na 3.2 wyświetlaczu, z elementami do kliknięcia wielkości 2x2mm! Pseudo trójwymiarowe komponenty, rodem z Windowsa 95.
  • #9 15279272
    michcior
    Poziom 30  
    Posty: 1132
    Pomógł: 159
    Ocena: 462
    Jedyna branża, która może się nie przejmować wyglądem to automatyka przemysłowa. Pewien konserwatyzm jest nawet wskazany. I tu się zgadzam, tyle że to dość wąska branża.

    Wygląd GUI to taki sam aspekt jak projekt mechaniczny. Kiedyś, byle jaka obudowa konstrukcji DIY była całkiem akceptowalna. Dzisiaj widząc niechlujne pudełka wyrżnięte z kiepskiego plastiku czy ze sklejki, nawet jeśli opakowują "state of the art" elektronikę, czuje się spory niesmak. Wystarczy pooglądać dział DIY na elektrodzie. Czasy się zmieniły, są możliwość, narzędzia, materiały itd. żeby prace wyglądały dobrze. Właśnie, świat się zmienia i trzeba za tym nadążać.

    Co można zrobić z takim "Dsicovery"? Panel automatyki domu, sterowanie roletami, alarm domowy, komputer pokładowy do samochodu, sterownik do akwarium, stację pogodową, panel do jakiegoś ogrzewania, termostat pokojowy, panel pralki, lodówki, regulator systemu podlewania itd. Wybaczcie, ale "puścił bym pawia" widząc takie urządzenia z takimi widgetami.
  • #10 15279678
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    Prawie mi się udało skompilować STemwin, mam problem z plikiem STemWin528_CM7_GCC.a, nie wiem gdzie mam go dodać. Mam Eclipse z automatycznym make. Wydaje mi się, że trzeba to dodać do linkera, ale to dalej nie działa.
    [STM32F7][C] - Jakie darmowe GUI na STM32F7-Discovery ?1.jpg (149.66 kB)Musisz być zalogowany, aby pobrać ten załącznik.

    Gdy mam tak jak zdjęciu to pokazuje się błąd: cannot find -lSTemWin528_CM7_GCC.a czyli go nie ma.
  • #11 15281813
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Dodaj tą bibliotekę bezpośrednio do flag linkera, czyli nie przez tą opcję którą użyłeś (usuń tylko opcję z "-l"), tylko w innym miejscu gdzie możesz dopisywać bezpośrednio wywołania linkera dodaj to tak:

    -l:STemWin528_CM7_GCC.a

    dokładnie tak jak jest napisane, czyli z dwukropkiem. No chyba że da się dwukropek dodać w tej opcji której użyłeś, to też możesz spróbować.
  • #12 15281891
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    Dodałem tak gdzie napisałeś i teraz błąd: undefined reference to `GUI_Init'. Chyba że w złym miejscu dodałem.
    [STM32F7][C] - Jakie darmowe GUI na STM32F7-Discovery ?2.jpg (178.24 kB)Musisz być zalogowany, aby pobrać ten załącznik.
  • #13 15281899
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Hmmm... nie jestem pewien. Da się gdzieś dodać opcje dla linkera tak żeby była "normalna", a nie poprzedzona "-X linker"? Ważne jest też, żeby biblioteka była w wywołaniu linkera na końcu - po wszystkich plikach z rozszerzeniem .o.

    Nie używam tej wtyczki, więc nigdy nie uświadczyłem takich problemów (;
  • #14 15281948
    michalko12
    Specjalista - Mikrokontrolery
    Posty: 3394
    Pomógł: 462
    Ocena: 321
    Przecież masz tam w ustawieniach linkera opcje Libraries. W polu Libraries(-l) wstawiasz tylko STemWin528_CM7_GCC i ewentualnie w polu Library search path(-L) ścieżkę do tej biblioteki.
  • #15 15281953
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    i nie zadziała, bo plik nazywa się "STemWin528_CM7_GCC.a". a nie "libSTemWin528_CM7_GCC.a". Dlatego trzeba użyć formatu "-l:" zamiast "-l".

    https://sourceware.org/binutils/docs/ld/Options.html#Options

    Cytat:
    -l namespec
    --library=namespec
    Add the archive or object file specified by namespec to the list of files to link. This option may be used any number of times. If namespec is of the form :filename, ld will search the library path for a file called filename, otherwise it will search the library path for a file called libnamespec.a.
  • #16 15281986
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    Teraz mi innym błąd wyświetla: Description Resource Path Location Type
    error: stm32-discof7-gui.elf uses VFP register arguments, c:/program files/gnu tools arm embedded/4.9 2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib\libg_nano.a(lib_a-memmove.o)
    .
  • #17 15281991
    michalko12
    Specjalista - Mikrokontrolery
    Posty: 3394
    Pomógł: 462
    Ocena: 321
    Freddie Chopin napisał:
    i nie zadziała, bo plik nazywa się "STemWin528_CM7_GCC.a". a nie "libSTemWin528_CM7_GCC.a". Dlatego trzeba użyć formatu "-l:" zamiast "-l".

    Ok, do tej pory nie zwróciłem na to uwagi. No ale to w tym samym polu wystarczy wstawić :STemWin528_CM7_GCC.a i na to samo wyjdzie.
  • #18 15281998
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    Tak mam teraz wpisane i wyskakuje mi błąd jak zamieściłem powyżej.
  • #20 15282393
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    Freddie Chopin napisał:
    Twój projekt używa FPU a biblioteka nie, albo odwrotnie. Wybrałeś zły plik biblioteki.

    Miałeś racje, biblioteka jest z FPU, zmieniłem i już się sprawie skompilowało. Mam jeszcze 3 błędy:
    undefined reference to `GUI_X_Config'
    undefined reference to `GUI_X_Init'
    undefined reference to `LCD_X_Config'


    Te funkcje są, ale ich nie widzi.
  • #22 15282434
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    LCD_X_Config jest w pliku LCDConf.c
    GUI_X_Init jest w bibliotece STemWin528_CM7_GCC.a
    GUI_X_Config jest w pliku GUIConf.c

    Projekt w C.
  • #23 15282562
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Hmm... W moim projekcie (już sprzed dwóch lat) miałem wszystkie te funkcje w swoich plikach, przy czym GUI_X_Config() i LCD_X_Config() coś robiły, a GUI_X_Init() było puste. Może spróbuj dodać u siebie puste GUI_X_Init(), bo wygląda to na magiczny problem związany z kolejnością linkowania...

    Swoją drogą mnie też się ta biblioteka nie podobała i nie chodzi mi akurat o stronę wizualną (;
  • #24 15282604
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    Zrobiłem w main.c puste funkcje, program się skompilował. Po wgraniu na LCD nic, białe tło.
  • #25 15282762
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    No ale wszystkie nie mogą być puste (; Z dokumentacji wynikało wtedy, że w GUI_X_Init() nic specjalnego nie było trzeba robić, więc po prostu zostawiłem puste i już. Musisz poszukać informacji o tym jak to teraz wygląda, bo mogło się coś zmienić i może trzeba jednak wciągnąć tą funkcję z biblioteki.

    Do tego jeszcze trzeba było włączyć jakiś zupełnie bezsensowny układ peryferyjny żeby ta biblioteka zadziałała. W przypadku STM32F1 było to chyba CRC. Takie "zabezpieczenie", żebyś mógł uruchomić ją tylko z STM32. Jak to jest na STM32F7 - trzeba poszukać w dokumentacji albo debuggować.

    Uruchomienie tego cudu było mocno skomplikowane...
  • #26 15286425
    tomzor
    Poziom 15  
    Posty: 69
    Pomógł: 5
    Ocena: 3
    STemwin jest jakie jest, można używać albo i nie , przynajmniej nikt nie będzie "pawiował" :D

    Z tych czy innych GUI można zrobić albo fajne albo badziewnie wyglądające obrazki.

    "Jedyna branża, która może się nie przejmować wyglądem to automatyka przemysłowa", hmmm można polemizować, widziałem różne "obrazki" od nazwałbym "cukierkowo - kolorowym", kompletnie nieczytelnymi obrazami dla obsługi, aż do przesady i do takich od siekiery zrobione gdzie poszczególne "obiekty" rysował jakiś dzieciak z przedszkola.
    Oczywiście jak klientowi się podoba takie czy siakie wykonanie to już nie problem dla wykonawcy. Muszę spytać obsługi "bloku energetycznego" czy by chcieli coś podobnego do GUI Apple.

    A może TouchGFX ten wygląda lepiej. I nawet działa z "Discover'ami".
    Trochę inaczej wygląda używanie niż STemwin'a.
  • #27 15286555
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    Na razie dałem sobie spokój z STemwin, nie dałem rady tego odpalić.

    tomzor napisał:
    A może TouchGFX ten wygląda lepiej. I nawet działa z "Discover'ami".
    Trochę inaczej wygląda używanie niż STemwin'a.

    Owszem wygląda lepiej, nawet dużo lepiej, ale to nie jest darmowe a cena jest nie mała - nawet w PLN.
  • #28 15295456
    tomzor
    Poziom 15  
    Posty: 69
    Pomógł: 5
    Ocena: 3
    To może zrób tak
    ściągnij sobie STM32CubeF7.zip shttp://www.st.com/web/en/catalog/tools/PF261909#.
    W katalogu .......\Projects\STM32746G-Discovery\Applications\STemWin
    masz przykładowe projekty dla IAR, Keil oraz System Workbench for STM32 aby uruchomić GUI STemwin'a.
    Na początku jest to może trochę trudne do skonfigurowania itd. ale jak będziesz miał najprostszy przykład to powinieneś już coś zrobić więcej. STemwin jest może trochę toporne od strony wizualnej, ale jeśli się popracuje nad tym, to można zamienić "toporne windosowate ...." na coś fajniejszego, np. zamiast kwadratowego szarego Button'a można podstawić ikonkę itd itd.
    Jak już uruchomisz GUI to następnie obsługa touchpanela.
  • #29 15296073
    mrh
    Poziom 18  
    Posty: 572
    Pomógł: 15
    Ocena: 13
    tomzor napisał:
    To może zrób tak
    ściągnij sobie STM32CubeF7.zip shttp://www.st.com/web/en/catalog/tools/PF261909#.
    W katalogu .......\Projects\STM32746G-Discovery\Applications\STemWin
    masz przykładowe projekty dla IAR, Keil oraz System Workbench for STM32 aby uruchomić GUI STemwin'a.
    Na początku jest to może trochę trudne do skonfigurowania itd. ale jak będziesz miał najprostszy przykład to powinieneś już coś zrobić więcej. STemwin jest może trochę toporne od strony wizualnej, ale jeśli się popracuje nad tym, to można zamienić "toporne windosowate ...." na coś fajniejszego, np. zamiast kwadratowego szarego Button'a można podstawić ikonkę itd itd.
    Jak już uruchomisz GUI to następnie obsługa touchpanela.

    Tak cały czas robiłem i nic z tego.
  • #30 15296099
    tomzor
    Poziom 15  
    Posty: 69
    Pomógł: 5
    Ocena: 3
    Co do touchgfx po podaniu danych przyślą linka do zaciągnięcia przykładów
    http://touchgfx.com/try-touchgfx/evaluation/

    Co do twoich eksperymentów ... dziwne że nic nie chce zadziałać, ze 2 godz temu skompilowałem przykładowy STemWin dla STM32746G-Discovery pod "System Workbench for STM32" i jest OK, bez żadnych zmian w projekcie itp. więc u ciebie również MUSI zadziałać.

Podsumowanie tematu

✨ Użytkownicy poszukują darmowego GUI dla STM32F7-Discovery, preferując estetyczne i łatwe w implementacji rozwiązania. STemwin, stworzony przez Segger, jest polecany, ale wielu użytkowników napotyka trudności w jego konfiguracji i brakuje materiałów edukacyjnych. Krytyka dotyczy również przestarzałego wyglądu widgetów. Inne opcje, takie jak TouchGFX, oferują lepszą estetykę, ale są płatne. Użytkownicy dzielą się doświadczeniami związanymi z kompilacją i konfiguracją projektów, wskazując na problemy z linkowaniem bibliotek oraz konieczność dostosowania funkcji do specyfikacji STM32F7.
Wygenerowane przez model językowy.
REKLAMA