| Ваш IP: 75.101.220.230 | Online(32) - гости: 25, боты: 7 | Загрузка сервера: 0.31 ::::::::::::


STM32 + TFT-дисплей SPI 320×240 (ILI9341C)

TFT-дисплей SPI 320×240 (ILI9341C) в сочетании с платой STM32 базе микроконтроллера STM32F103C8T6 имеет очень хорошее быстродействие, скорость обновления экрана намного выше чем использования этого дисплея с Arduino Nano. Работа логики дисплея имеет напряжение 3,3 В, что очень упрощает его подключение к STM32.

Подключение дисплея к STM32 достаточно простое:

При добавлении платы STM32 в Arduino IDE так же добавляются все необходимые библиотеки для работы с TFT-дисплей SPI 320×240 (ILI9341C).

Как добавить плату STM32 в Arduino IDE можно ознакомится в — STM32 Arduino IDE

// Библиотека Arduino_STM32-master.zip
#include "SPI.h"
#include <Adafruit_GFX_AS.h>   // https://rcl-radio.ru/wp-content/uploads/2020/06/Adafruit_GFX.zip
#include <Adafruit_ILI9341_STM.h>
 
#define TFT_CS         PA1                 
#define TFT_DC         PA2             
#define TFT_RST        PA3
 
long i;
 
Adafruit_ILI9341_STM tft = Adafruit_ILI9341_STM(TFT_CS, TFT_DC, TFT_RST); // Mosi - PA7, SCK - PA5 
 
void setup(){
  tft.begin(); 
  tft.setRotation(1);tft.fillScreen(ILI9341_BLACK);
}
 
void loop(void) {
  tft.setCursor(0, 0);
  tft.setTextColor(ILI9341_RED);  tft.setTextSize(1);
  tft.println("RCL-RADIO.RU");
  tft.println();
  tft.setTextColor(ILI9341_BLUE);  tft.setTextSize(2);
  tft.println("RCL-RADIO.RU");
  tft.println();
  tft.setTextColor(ILI9341_GREEN);  tft.setTextSize(3);
  tft.println("RCL-RADIO.RU");
  tft.println();
  tft.setTextColor(ILI9341_WHITE);  tft.setTextSize(4);
  tft.println("RCL-RADIO.RU");
  tft.println();
 
  tft.fillRect(0,150,150,180,ILI9341_BLACK);
  tft.setTextSize(1);
 
  tft.setTextColor(ILI9341_WHITE); 
  tft.setCursor(0, 150);
  tft.print(i++);
 
  delay(10);
}

Комментарии

  • enot:

    Ошибка компиляции для платы Generic STM32F103C series.

    Что может быть?

  • enot:

    Arduino: 1.8.12 (Windows 10), Плата:»Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), Serial, 72Mhz (Normal), Smallest (default)»

    C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp: In member function ‘int16_t Adafruit_GFX_AS::drawUnicode(uint16_t, int16_t, int16_t, int16_t)’:

    C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:142:9: error: ‘textsize’ was not declared in this scope

    if (textsize == 1) drawFastHLine(x, pY, width+gap, textbgcolor);

    ^~~~~~~~

    C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:142:9: note: suggested alternative: ‘textsize_x’

    if (textsize == 1) drawFastHLine(x, pY, width+gap, textbgcolor);

    ^~~~~~~~

    textsize_x

    C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:149:11: error: ‘textsize’ was not declared in this scope

    if (textsize==1){

    ^~~~~~~~

    C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:149:11: note: suggested alternative: ‘textsize_x’

    if (textsize==1){

    ^~~~~~~~

    textsize_x

    C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:173:7: error: ‘textsize’ was not declared in this scope

    pY+=textsize;

    ^~~~~~~~

    C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:173:7: note: suggested alternative: ‘textsize_x’

    pY+=textsize;

    ^~~~~~~~

    textsize_x

    C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:175:20: error: ‘textsize’ was not declared in this scope

    return (width+gap)*textsize; // x +

    ^~~~~~~~

    C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:175:20: note: suggested alternative: ‘textsize_x’

    return (width+gap)*textsize; // x +

    ^~~~~~~~

    textsize_x

    C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp: In member function ‘int16_t Adafruit_GFX_AS::drawCentreString(char*, int16_t, int16_t, int16_t)’:

    C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:249:15: error: ‘textsize’ was not declared in this scope

    len = len*textsize;

    ^~~~~~~~

    C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:249:15: note: suggested alternative: ‘textsize_x’

    len = len*textsize;

    ^~~~~~~~

    textsize_x

    C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp: In member function ‘int16_t Adafruit_GFX_AS::drawRightString(char*, int16_t, int16_t, int16_t)’:

    C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:300:15: error: ‘textsize’ was not declared in this scope

    len = len*textsize;

    ^~~~~~~~

    C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:300:15: note: suggested alternative: ‘textsize_x’

    len = len*textsize;

    ^~~~~~~~

    textsize_x

    Несколько библиотек найдено для «Adafruit_ILI9341_STM.h»
    Используется: C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_ILI9341_STM
    Не используется: C:\Users\propaynepropaev\Documents\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_ILI9341_STM
    Несколько библиотек найдено для «Adafruit_I2CDevice.h»
    Используется: C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_BusIO
    Не используется: C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_BusIO-master
    Несколько библиотек найдено для «Wire.h»
    Используется: C:\Users\propaynepropaev\Documents\Arduino\libraries\Wire
    Не используется: C:\Users\propaynepropaev\Documents\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\WireSlave
    Не используется: C:\Users\propaynepropaev\Documents\Arduino\libraries\WireSlave
    Не используется: C:\Users\propaynepropaev\Documents\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Wire
    Несколько библиотек найдено для «SPI.h»
    Используется: C:\Users\propaynepropaev\Documents\Arduino\libraries\SPI
    Не используется: C:\Users\propaynepropaev\Documents\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\SPI
    Несколько библиотек найдено для «Adafruit_GFX_AS.h»
    Используется: C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_GFX_AS
    Не используется: C:\Users\propaynepropaev\Documents\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS
    exit status 1
    Ошибка компиляции для платы Generic STM32F103C series.

    Этот отчёт будет иметь больше информации с
    включенной опцией Файл -> Настройки ->
    «Показать подробный вывод во время компиляции»

  • liman28:

    Попробуйте удалить (запаковать в архив) библиотеку C:\Users\propaynepropaev\Documents\Arduino\libraries\Adafruit_ILI9341_STM

    У Вас имеется ряд конфликтов одноименных библиотек Arduino с STM32

  • enot:

    Я уже понял, только вот:Arduino: 1.8.12 (Windows 10), Плата:»Generic STM32F103C series, STM32F103CB (20k RAM. 128k Flash), Serial, 72Mhz (Normal), Smallest (default)»

    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp: In member function ‘int16_t Adafruit_GFX_AS::drawUnicode(uint16_t, int16_t, int16_t, int16_t)’:

    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:142:9: error: ‘textsize’ was not declared in this scope

    if (textsize == 1) drawFastHLine(x, pY, width+gap, textbgcolor);

    ^~~~~~~~

    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:142:9: note: suggested alternative: ‘textsize_x’

    if (textsize == 1) drawFastHLine(x, pY, width+gap, textbgcolor);

    ^~~~~~~~

    textsize_x

    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:149:11: error: ‘textsize’ was not declared in this scope

    if (textsize==1){

    ^~~~~~~~

    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:149:11: note: suggested alternative: ‘textsize_x’

    if (textsize==1){

    ^~~~~~~~

    textsize_x

    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:173:7: error: ‘textsize’ was not declared in this scope

    pY+=textsize;

    ^~~~~~~~

    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:173:7: note: suggested alternative: ‘textsize_x’

    pY+=textsize;

    ^~~~~~~~

    textsize_x

    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:175:20: error: ‘textsize’ was not declared in this scope

    return (width+gap)*textsize; // x +

    ^~~~~~~~

    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:175:20: note: suggested alternative: ‘textsize_x’

    return (width+gap)*textsize; // x +

    ^~~~~~~~

    textsize_x

    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp: In member function ‘int16_t Adafruit_GFX_AS::drawCentreString(char*, int16_t, int16_t, int16_t)’:

    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:249:15: error: ‘textsize’ was not declared in this scope

    len = len*textsize;

    ^~~~~~~~

    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:249:15: note: suggested alternative: ‘textsize_x’

    len = len*textsize;

    ^~~~~~~~

    textsize_x

    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp: In member function ‘int16_t Adafruit_GFX_AS::drawRightString(char*, int16_t, int16_t, int16_t)’:

    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:300:15: error: ‘textsize’ was not declared in this scope

    len = len*textsize;

    ^~~~~~~~

    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\STM32F1\libraries\Adafruit_GFX_AS\Adafruit_GFX_AS.cpp:300:15: note: suggested alternative: ‘textsize_x’

    len = len*textsize;

    ^~~~~~~~

    textsize_x

    exit status 1
    Ошибка компиляции для платы Generic STM32F103C series.
    Возникла ошибка при загрузке http://dan.drown.org/stm32duino/package_stm32duino_index.json

    Этот отчёт будет иметь больше информации с
    включенной опцией Файл -> Настройки ->
    «Показать подробный вывод во время компиляции»

  • liman28:

    Adafruit_GFX у меня используется из библиотек арудино, уставите библиотеку https://rcl-radio.ru/wp-content/uploads/2020/06/Adafruit_GFX.zip

  • enot:

    Кажется победили. Компиляция прошла успешно. Завтра попробую дисплейчик подключить.
    У меня не такой, нужно с пинами разбираться.Большое благодарю!

  • enot:

    У меня дисплейчик (2.4″tft lcd shield)оказался на SPFD5408 хотя на пакете китаец указал ILI9341.Их можно как-то подружить?

  • enot:

    Эвон оно как,спасибо.

  • Это же spi дисплей, почему на схеме нет связей портов, на которых аппаратный spi, Ошибка?

Добавить комментарий

Войти с помощью: 

Случайные статьи

  • Устройство для проверки кварцевых резонаторов

    Схема уст-ва показана на рисунке, в основе схемы лежит задающий генератор на КР531ГГ1 — микросхема представляет собой 2-а управляемых генератора, частота которых зависит от С1 С2 подключенным к микросхеме которые представляют собой кварцевые или пьезокерамические резонаторы. R1 подключенный к микросхеме служит для облегчения запуска генератора при частотах ниже 4 МГц. …Подробнее...
  • Квадрапреобразователь на ОУ К153УД2

    Квадрапреобразователь на ОУ К153УД2

    Квадрапреобразователь на ОУ К153УД2, у которого используется фазовращатель и суммарно-разностная матрица. Он имеет следующие основные технические характеристики: Входное напряжение: номинальное………… 0,8 В максимальное………..8 В Номинальный диапазон частот . . . . . . . . 20… 30 000 Гц Коэффициент гармоник………. 0,2% Отношение сигнал-шум (не взвешенное)…… 70 дБ Входное сопротивление………. …Подробнее...
  • Система радиоуправления

    В данной статье будет описана система радиоуправления, которая включает в передатчик, приемник и дешифратор команд. Данная система радиоуправления имеет повышенную помехоустойчивость за счет много кратной передачи команд. Для передачи команд используется число-импульсный код, шифратор передатчика построен на 2-х микросхемах 561 серии. Генератор передатчика собран на основе простой схемы с кварцевой …Подробнее...
  • Изобретение радио

    Изобретение радио

    ВСЁ ДЛЯ РАДИОЛЮБИТЕЛЕЙ: http://www.dessy.ru/index.html?partne… В этом выпуске: кто изобрёл радио, когда празднуется День Радио.Подробнее...
  • Темброблок на TDA8425 (Arduino)

    Темброблок на TDA8425 (Arduino)

    ИМС TDA8425 представляет собой двухканальный (стереофонический) регулятор громкости и тембра с микропроцессорным управлением. Технические характеристики: Производитель: Philips Напряжение питания минимальное 7 В Напряжение питания максимальное 13,2 В Частотный диапазон 35…20000 Гц Коэффициент гармоник 0,05% Выходное напряжение максимальное 1 В Регулировка громкости 48 уровней от -88 дБ до +6 дБ с …Подробнее...