Skocz do zawartości

STM32 - Problem z wyświetlaczem OLED na sterowniku SSD1306


Lintek

Pomocna odpowiedź

Witam
Staram się podłączyć wyświetlacz na sterowniku SSD1306 do mikrokontrolera STM32F401RE. Posiadam dokładnie ten model wyświetlacza https://kamami.pl/wyswietlacze-oled-graficzne/560775-wyswietlacz-oled-waveshare-096-cala-a.html Chcę połączyć się z nim poprzez i2c i móc wyświetlać na nim tekst czy też figury. Mój kod wygląda aktualnie tak:

/* Includes ------------------------------------------------------------------*/
#include "main.h"

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "ssd1306.h"
#include "test.h"
#include "fonts.h"


/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_I2C1_Init(void);
/* USER CODE BEGIN PFP */

int main(void)
{
/* USER CODE BEGIN 1 */

/* USER CODE END 1 */

/* MCU Configuration--------------------------------------------------------*/

/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();

/* USER CODE BEGIN Init */

/* USER CODE END Init */

/* Configure the system clock */
SystemClock_Config();

/* USER CODE BEGIN SysInit */

/* USER CODE END SysInit */

/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_I2C1_Init();
/* USER CODE BEGIN 2 */
SSD1306_Init();
/* USER CODE END 2 */

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
SSD1306_Clear();

SSD1306_GotoXY(5, 0); // coordinates x, y
SSD1306_Puts("Hello", &Font_11x18, 1); // print Hello

SSD1306_GotoXY(0, 24); // coordinates x, y
SSD1306_Puts("ssd1306 OLED", &Font_7x10, 1);

SSD1306_GotoXY(0, 40); // coordinates x, y
SSD1306_Puts("display!", &Font_11x18, 1);

SSD1306_UpdateScreen(); // update screen

HAL_Delay(10000);
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}


Bazuje on głównie na poradnikach znalezionych w internecie. Nie jest zbyt skomplikowany, a jednak wyświetlacz w ogóle nie reaguje. Może ktoś ma pomysł co z tym zrobić lub doświadczenie w podobnym przypadku?

Link do komentarza
Share on other sites

Anonim

Ten opis użyteczny jest w STM32Cubeide.

Najlepiej będzie jeśli od początku stworzysz projekt i w pliku twojnazwa.ioc właściwie skonfigurujesz procesor.

1.Musisz zainstalować I2C bo ten wyświetlacz komunikuje się z procesorem przez I2C.

2. W necie na Git Hubie znajdziesz biblioteki SSD1306.W sumie musisz zainstalować 5 bibliotek. Trzy w katalogu INC SSD1306.h, font_ascii_5x7.h , GFX.h i dwie w katalogu SRC SSD1306.c. oraz  GFX.c.

3.W /* Private includes -------*/ wpisz      

#include"string.h" oraz

#include"stdio.h".

4. W /*Private function prototypes*/ wpisz

=========================

void GFX_draw_string();

void GFX_draw_fill_rect();

void GFX_draw_char(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg, uint8_t size_x, uint8_t size_y);

=====================================

W /* USER CODE BEGIN 2 */ wpisz

SSD1306_init();

SSD1306_display_clear();

GFX_draw_string(10, 10,(unsigned char *)"np. pada deszcz", WHITE, BLACK, 2 , 2 );

SSD1306_display_repaint() ;

========================

Na ekranie powinno pojawić się np. pada deszcz

Słowa kluczowe znajdziesz w bibliotece ssd1306.h

 

 

 

                                                                                                                                     

 

Edytowano przez szymonw
Link do komentarza
Share on other sites

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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.