Ta strona używa ciasteczek (plików cookies), dzięki którym może działać lepiej. Dowiedz się więcejRozumiem i akceptuję

Kurs STM32 - #10 - SPI w praktyce, wyświetlacz graficzny

Autor Wiadomość
Komentator 




Posty: 865
Otrzymał 17 piw(a)
Wysłany: 04-12-2015, 13:55   Kurs STM32 - #10 - SPI w praktyce, wyświetlacz graficzny

KursSTM32_10
W poprzedniej części kursu poznaliśmy działanie interfejsu SPI. W praktyce wykorzystaliśmy go do komunikacji z ekspanderem portów MCP23S08. Teraz zajmiemy się ciekawszym tematem, czyli wyświetlaczem graficznym z telefonu Nokia 5110. Jest to tani i popularny moduł, który może ułatwić interakcję z budowanym urządzeniem.

UWAGA, to tylko wstęp!
Dalsza część artykułu dostępna jest na darmowym blogu Forbota.

Kliknij, aby przeczytać całość!


Poniżej znajdują się komentarze naszych użytkowników powiązane z tym artykułem.


Przeczytałeś artykuł? Dodaj komentarz!
Postaw piwo autorowi tego posta
 
 
Elektronik 



Posty: 1
Wysłany: 23-12-2015, 20:20   

Cześć

W jaki sposób mogę wyświetlić zmienną na tym wyświetlaczu ?

Próbowałem z funkcją itoa ale coś mi nie działa.
Pomoże ktoś ?

Postaw piwo autorowi tego posta
 
 
Iwo 



Posty: 3
Wysłany: 29-12-2016, 11:59   

W przypadku umieszczenia bitmapy w osobnym pliku podczas kompilacji pojawia się błąd: ../src/main.c:84:33: error: invalid application of 'sizeof' to incomplete type 'const uint8_t[] {aka const unsigned char[]}'

Z czego to wynika?

PS Przekopiowałem przykładowy kod z kursu, nic nie zmieniałem

Postaw piwo autorowi tego posta
 
 
Elvis 



Posty: 1187
Pomógł: 83 razy
Otrzymał 216 piw(a)
Skąd: wawa
Programuję w:
C, asm
Wysłany: 31-12-2016, 14:55   

Elektronik, możesz najpierw zmienić typ zmiennej z liczby na napis. Później bez problemu powinieneś wyświetlić wynik na ekranie wyświetlacza. Funkcja itoa to dobry wybór, możesz pokazać program który napisałeś? Spróbujemy podpowiedzieć dlaczego nie działa.
Iwo, programy z kursu były testowane i kompilowały się bez problemu. Na pewno nie zmieniałeś nic w kodzie podczas tego kopiowania?

Postaw piwo autorowi tego posta
 
 
bastik 



Posty: 13
Wysłany: 26-06-2017, 12:38   

Mam pewien problem z tym konwerterem, otóż po zapisie, wszystkie dane w tablicy wyjściowej wynoszą 0x00. Próbowałem konwertować obrazy o rozmiarze 84x48, pobrałem z neta jakieś obrazki monochromatyczne i też nic. Wychodzi na to, że ten program jest dla mnie zbyt skomplikowany :P

Postaw piwo autorowi tego posta
 
 
Treker 




Posty: 7601
Pomógł: 114 razy
Otrzymał 491 piw(a)
Skąd: Gdynia
Programuję w:
C, Arduino
Moje roboty:
Spectrum, Fuzzy

Wysłany: 26-06-2017, 13:09   

bastik, a gdzie dokładnie napotykasz problem? Pokaż jak i co robisz, będzie łatwiej znaleźć rozwiązanie :)


Zachęcam do korzystania z forum - nie pomagam indywidualnie przez PW/maila.
Sprawdź » Kurs ARDUINOKurs podstaw elektronikiZbuduj swojego robota - kurs!
Postaw piwo autorowi tego posta
 
 
bastik 



Posty: 13
Wysłany: 26-06-2017, 22:39   

Wczytuje do programu obrazek (format bmp, niekolorowy). Byte orientation: Vertical, size endianness: Little, Pixels/byte: 8. Rozmiar obrazka staram się dopasować więc w programie nic z nim nie kombinuje, nazwy tablicy też nie zmieniam. Później wybieram save output i zapisuje w formie pliku *.txt no i niestety nie działa.

Postaw piwo autorowi tego posta
 
 
Treker 




Posty: 7601
Pomógł: 114 razy
Otrzymał 491 piw(a)
Skąd: Gdynia
Programuję w:
C, Arduino
Moje roboty:
Spectrum, Fuzzy

Wysłany: 27-06-2017, 11:25   

bastik napisał/a:
niestety nie działa.

Ale nie działa w sensie, że generowany plik jest pusty, czy generują się złe dane? ;)


Zachęcam do korzystania z forum - nie pomagam indywidualnie przez PW/maila.
Sprawdź » Kurs ARDUINOKurs podstaw elektronikiZbuduj swojego robota - kurs!
Postaw piwo autorowi tego posta
 
 
bastik 



Posty: 13
Wysłany: 27-06-2017, 19:40   

Wygenerowany kod dla dowolnego obrazka wygląda tak
Kod programu: Zaznacz cały
//------------------------------------------------------------------------------
// File generated by LCD Assistant
// http://en.radzio.dxp.pl/bitmap_converter/
//------------------------------------------------------------------------------

const unsigned char KSET_logo [] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};


Na początku myślałem że program koduje tylko część obrazu, więc go zmniejszyłem do rozmiaru 84x48 pikseli. Ale niestety to też nie pomaga.

Postaw piwo autorowi tego posta
 
 
Treker 




Posty: 7601
Pomógł: 114 razy
Otrzymał 491 piw(a)
Skąd: Gdynia
Programuję w:
C, Arduino
Moje roboty:
Spectrum, Fuzzy

Wysłany: 29-06-2017, 12:13   

bastik, może jednak coś jest źle z plikiem graficznym? Mój przykład w załączniku. Podgląd programu:


Wynik:
Kod programu: Zaznacz cały
//------------------------------------------------------------------------------
// File generated by LCD Assistant
// http://en.radzio.dxp.pl/bitmap_converter/
//------------------------------------------------------------------------------

const unsigned char test [] = {
0x00, 0x00, 0x00, 0x08, 0x1C, 0x3C, 0x3C, 0x38, 0x78, 0xF8, 0xF8, 0x38, 0x78, 0x78, 0x70, 0x70,
0x70, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFC, 0xFE, 0x7F, 0x0F, 0x07, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFC, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x7F, 0x07, 0x07, 0x07, 0x07, 0x0F,
0x0F, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xFE, 0xFE, 0xCE, 0x8E, 0x0E, 0x0E,
0x1E, 0x1E, 0x1C, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0xC7, 0xFF, 0xFF, 0x7F, 0x1F, 0x0E,
0x0E, 0x1E, 0x1C, 0x1C, 0x1C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0xFC, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F,
0x7F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFE, 0xFF, 0xFF, 0xC7, 0xC3, 0xC7, 0xC7,
0xC7, 0xC7, 0xC7, 0xC6, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xC1, 0x83,
0x87, 0x8F, 0xCF, 0xCE, 0xFE, 0xFE, 0x7C, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFC, 0xFF, 0x7F, 0x0F,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x1F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F,
0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x80, 0x80, 0x80, 0x8E, 0x0F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};



testBMP.zip
Pobierz Plik ściągnięto 5 raz(y) 379 Bajtów


Zachęcam do korzystania z forum - nie pomagam indywidualnie przez PW/maila.
Sprawdź » Kurs ARDUINOKurs podstaw elektronikiZbuduj swojego robota - kurs!
Postaw piwo autorowi tego posta
 
 
bastik 



Posty: 13
Wysłany: 30-06-2017, 00:49   

Treker Fakt ten plik który dodałeś jest też dobrze konwertowany u mnie. Tak się zastanawiam bo mam na przykład taki obrazek:

Jeżeli przekonwertuje go na plik bmp na przykład gimpem i odpalę w programie UC-GUI-BitmapConvert (konwersja obrazu wyświetlanego na wyświetlaczu typu e-papier), to wszystko działa. Natomiast w przypadku LCDAssistant nawet po zmianie rozmiaru i zapisaniu, jako "czarno-biały" generowany jest błędny kod tablicy, o co tu może chodzić?

Ostatnio zmieniony przez bastik 30-06-2017, 01:00, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
Treker 




Posty: 7601
Pomógł: 114 razy
Otrzymał 491 piw(a)
Skąd: Gdynia
Programuję w:
C, Arduino
Moje roboty:
Spectrum, Fuzzy

Wysłany: 30-06-2017, 21:25   

bastik, niestety nie wiem - w tej kwestii nie pomogę. Możesz poszukać również innego programu do konwersji obrazów na "tablice". Na pewno znajdziesz bardziej rozbudowane narzędzia :)


Zachęcam do korzystania z forum - nie pomagam indywidualnie przez PW/maila.
Sprawdź » Kurs ARDUINOKurs podstaw elektronikiZbuduj swojego robota - kurs!
Postaw piwo autorowi tego posta
 
 
JFranko 



Posty: 3
Wysłany: 03-07-2017, 14:31   

Chciałbym uruchomić ten wyświetlacz na STM32F0
Niestety nie ma możliwości włączenia na nim AFIO, nie posiada w ogóle takiej opcji.
Jak mógłbym uruchomić wyświetlacz bez tego?

Postaw piwo autorowi tego posta
 
 
Elvis 



Posty: 1187
Pomógł: 83 razy
Otrzymał 216 piw(a)
Skąd: wawa
Programuję w:
C, asm
Wysłany: 03-07-2017, 14:48   

JFranko, w komentarzach do kursów omawiamy tylko układy używane w danym kursie - jeśli masz pytania odnośnie innego mikrokontrolera, np. STM32F0 załóż proszę nowy temat i napisz dokładnie o co chodzi. Przy okazji mógłbyś również podać o który układ z rodziny F0 pytasz - byłoby łatwiej pomóc.

Postaw piwo autorowi tego posta
 
 
Więcej szczegółów
Wystawiono 1 piw(a):
Treker
bastik 



Posty: 13
Wysłany: 11-07-2017, 18:40   

Czy wyprowadzenia DC, CE i RST z portu PC mogę zmienić na port PA, tak żeby wyświetlacz był podpięty w całości właśnie do jednego portu?

Postaw piwo autorowi tego posta
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Wersja do druku

Skocz do:  

Nie rozwiązałeś swojego problemu? Zobacz podobne tematy: Kurs STM32 - #3 - Pł... Kurs STM32 - #5 - Ko... Kurs STM32 - #1 - Za... Kurs STM32 - #2 - Po...
lub przeszukaj forum po wybranych tagach: artykulow, do, komentarze


Powered by phpBB modified by Przemo © 2003 phpBB Group
Popularne kursy: Arduinopodstawy elektroniki