Skocz do zawartości

Biblioteka do obsługi wyświetlaczy GLCD ST7565


Eposas

Pomocna odpowiedź

Znalazłem bibliotekę właśnie tą https://github.com/mberntsen/STM32-Libraries/blob/master/ST7565/src/ST7565.c i mam tam dwie funkcje 

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

Używam biblioteki HAL i tych funkcji tam nie ma i nie wiem jak rozwiązać ten problem. Kiedyś ten temat już był jednak bez odpowiedzi

Link do komentarza
Share on other sites

Praktycznie wszystkie odpowiedzi znajdziesz w TYM wątku 🙂 

A wersja alternatywna: potrzebujesz bibliotek StdPeriph, a nie HAL (projekt nie bazuje na HAL tylko StdPeriph, stąd brak tych funkcji w HAL).

EDIT:

(Wersja HAL, pisana na sucho)

inline void ST7565_spiwrite(uint8_t c) {
 
	uint8_t buffer[1]; // Tak można zainicjować tablicę w tym miejscu, ale osobiście preferuję to rozdzielać :)
	buffer[0] = c;
	while(HAL_SPI_GetState(&spi) == HAL_SPI_STATE_RESET) // Jak będzie wysyłać kilka transakcji zamiast jednej usunąć tę linijkę
		HAL_SPI_Transmit(&spi, buffer, 1, HAL_MAX_DELAY);
	// Podmień &spi na swoją referencję do SPI ;) 
	// Pisane na sucho, mogą być błędy
    
}

 

Edytowano przez H1M4W4R1
  • Lubię! 1
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.