Skocz do zawartości

Obsługa wyświetlacza ST7565 i STM32F1


romkli

Pomocna odpowiedź

Dzięki za podpowiedź. Sprawdziłem i mam pewien problem. Otóż :

inline void ST7565_spiwrite(uint8_t c) {
  //shiftOut(sid, sclk, MSBFIRST, c);
  while (SPI_GetFlagStatus(SPI1, SPI_FLAG_TXE) == RESET);
  SPI_SendData(SPI1, c);
}

mam w trzeciej i czwartej linii błąd.

D:\WorkPlace\STM32\TrueStudio\ST7565_STM32F1_20190124\Debug/..\Src/ST7565.c:396: undefined reference to `SPI_GetFlagStatus'
D:\WorkPlace\STM32\TrueStudio\ST7565_STM32F1_20190124\Debug/..\Src/ST7565.c:397: undefined reference to `SPI_SendData'

Prawdopodobnie brakuje mi pliku stm32f1xx_spi.h, ale jak dodam w include, nie znajduje jego. Przypomnę że pracuję w TrueStudio oraz STM32CubeMX.

Link do komentarza
Share on other sites

2 godziny temu, romkli napisał:

Prawdopodobnie brakuje mi pliku stm32f1xx_spi.h, ale jak dodam w include, nie znajduje jego. Przypomnę że pracuję w TrueStudio oraz STM32CubeMX.

Cytowany przez Ciebie fragment bazuje na funkcjach z StdPeriph, musisz sobie przepisać ten fragment na wersję korzystającą z HAL.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

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

12 godzin temu, romkli napisał:

Dzięki za podpowiedź. Sprawdziłem i mam pewien problem. Otóż :


inline void ST7565_spiwrite(uint8_t c) {
  //shiftOut(sid, sclk, MSBFIRST, c);
  while (SPI_GetFlagStatus(SPI1, SPI_FLAG_TXE) == RESET);
  SPI_SendData(SPI1, c);
}

mam w trzeciej i czwartej linii błąd.

D:\WorkPlace\STM32\TrueStudio\ST7565_STM32F1_20190124\Debug/..\Src/ST7565.c:396: undefined reference to `SPI_GetFlagStatus'
D:\WorkPlace\STM32\TrueStudio\ST7565_STM32F1_20190124\Debug/..\Src/ST7565.c:397: undefined reference to `SPI_SendData'

Prawdopodobnie brakuje mi pliku stm32f1xx_spi.h, ale jak dodam w include, nie znajduje jego. Przypomnę że pracuję w TrueStudio oraz STM32CubeMX.

Cześć,

dobrze myślisz, prawdopodobnie brakuje include do pliku nagłówkowego .h do obsługi SPI. Jest on w katalogu projektu:

https://github.com/mberntsen/STM32-Libraries/tree/master/STM32F10x_StdPeriph_Driver/inc

Musisz odpowiednio podać ścieżkę do pliku nagłówkowego w instrukcji include:

#include "../../STM32F10x_StdPeriph_Driver/inc/stm32f10x_spi.h"

Oczywiści musisz mieć cały projekt z Github'a skopiowany lokalnie (źródła). Tak jak napisał Treker ten projekt korzysta z biblioteki "Standard Peripheral" a nie HAL. Jeśli koniecznie musisz mieć HAL, to musisz poszukać projektu opartego na bibliotece HAL, lub "ręcznie" to oprogramować korzystając z dokumentacji do tej biblioteki.

Pozdrawiam

Edytowano przez FlyingDutch
  • Lubię! 1
Link do komentarza
Share on other sites

Obawiam się że dodanie pliku nagłówkowego nie wystarczy. Błąd "undefined reference" pochodzi od linkera i oznacza, że nie znalazł on wymaganych funkcji. Dodanie nagłówka jedynie poinformuje kompilator o nazwach oraz parametrach, ale nie rozwiąże podstawowego problemu - że funkcji SPI_GetFlagStatus oraz SPI_SendData po prostu brakuje.

Trzeba więc je napisać, albo zmienić kod biblioteki wyświetlacza tak, aby działał z używaną biblioteką, czyli HAL.

  • Lubię! 2
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.