Помогите подружить blue pill stm32 и дисплей ili9341

tager
Offline
Зарегистрирован: 24.09.2018

Пришли с Али два дисплея. Один с тачем второй без тача.

В общем то вопрос в названии темы. Дисплеи будут выводить текст в кирилице. И возможно немного графики, пару линий или квадратов.

 Нужна библиотека для платы STM32F103C со схемой подключения.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

а тут шо, библиотекохранилище? 

tager
Offline
Зарегистрирован: 24.09.2018

DetSimen пишет:

а тут шо, библиотекохранилище? 

А почему бы и нет. Возможно у кого то и завалялась. Лежит без дела пылится. А мне как раз и пригодится.

b707
Offline
Зарегистрирован: 26.05.2017

поддержка этого дисплея есть во многих библиотеках, например в MCUfriend_kbv.h

Лично запускал такой дисплей на СТМ32

tager
Offline
Зарегистрирован: 24.09.2018

b707 пишет:

поддержка этого дисплея есть во многих библиотеках, например в MCUfriend_kbv.h

Лично запускал такой дисплей на СТМ32

Пишет.

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

b707
Offline
Зарегистрирован: 26.05.2017

tager пишет:

Пишет.

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

читайте описание библиотеки - там сказано, под какие платы она рассчитана и как ее настроить под конкретный МК

в MCUfriend_kbv.h совершенно точно есть поддержка STM32F103C series

 

b707
Offline
Зарегистрирован: 26.05.2017

tager пишет:

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

покажите сообщение об ошибке полностью. Только не скриншотом - скопируйте сообщение об ошибке как текст и вставьте в сообщение

tager
Offline
Зарегистрирован: 24.09.2018
Arduino: 1.8.10 (Windows 10), Плата:"Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STLink, 72Mhz (Normal), Smallest (default)"
 
Несколько библиотек найдено для "UTFTGLUE.h"
 Используется: C:\Users\tager\Documents\Arduino\libraries\MCUFRIEND_kbv
In file included from C:\Users\tager\Documents\Arduino\libraries\MCUFRIEND_kbv/UTFTGLUE.h:19:0,
 
                 from C:\Users\tager\Documents\Arduino\libraries\MCUFRIEND_kbv\examples\GLUE_Demo_320x240\GLUE_Demo_320x240.ino:20:
 
C:\Users\tager\Documents\Arduino\libraries\MCUFRIEND_kbv/MCUFRIEND_kbv.h:16:26: fatal error: Adafruit_GFX.h: No such file or directory
 
 #include "Adafruit_GFX.h"
 
                          ^
 
compilation terminated.
 
exit status 1
Ошибка компиляции для платы Generic STM32F103C series.
 
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
 
b707
Offline
Зарегистрирован: 26.05.2017

вы сами, надеюсь, прочитали? - исправляйте

Во-первых, поставьте библиотеку Adafruit_GFX.h -она необходима для работы MCUFRIEND_kbv, это написано в описании

Во-вторых, разберитесь, почему у вас библиотеки дублятся... уберите лишние

 

 

На будущее - учитесь сами читать сообщения об ошибках, вместо того чтоб сразу бежать на форум. В сообщении компилятора всегда указано что за ошибка.

 

gavroush
Offline
Зарегистрирован: 26.01.2020

b707 пишет:

поддержка этого дисплея есть во многих библиотеках, например в MCUfriend_kbv.h

Лично запускал такой дисплей на СТМ32

Подскажите начинающему, пожалуйста, где в этой библиотеке смотреть  распиновку выводов блюпил и портов tft. 

Спасибо.

b707
Offline
Зарегистрирован: 26.05.2017

для дисплеев SPI - в файле utility/mcufriend_serial.h

для 8битных - в файле utility/mcufriend_shield.h

gavroush
Offline
Зарегистрирован: 26.01.2020

 А для 16бит?

Извините ), надо было сразу уточнять. 

Нашел только такое:

 BLUEPILL Adapter standard wiring is:
    //LCD pins  |D7 |D6 |D5 |D4 |D3 |D2 |D1 |D0 | |RD |WR |RS |CS |RST| |SD_SS|SD_DI|SD_DO|SD_SCK|
    //STM32 pin |PA7|PA6|PA5|PA4|PA3|PA2|PA1|PA0| |PB0|PB6|PB7|PB8|PB9| |PA15 |PB5  |PB4  |PB3   | **ALT-SPI1**
 
но портов данных только 13....
b707
Offline
Зарегистрирован: 26.05.2017

gavroush пишет:

Нашел только такое:

 BLUEPILL Adapter standard wiring is:
    //LCD pins  |D7 |D6 |D5 |D4 |D3 |D2 |D1 |D0 | |RD |WR |RS |CS |RST| |SD_SS|SD_DI|SD_DO|SD_SCK|
    //STM32 pin |PA7|PA6|PA5|PA4|PA3|PA2|PA1|PA0| |PB0|PB6|PB7|PB8|PB9| |PA15 |PB5  |PB4  |PB3   | **ALT-SPI1**
 
но портов данных только 13....

это как раз для 8 бит - и портов тут 8  - PA7|PA6|PA5|PA4|PA3|PA2|PA1|PA0

Для 16 не знаю, не сталкивался

mixail844
Offline
Зарегистрирован: 30.04.2012

начнем с начала(судя по приведенным скринам в  сообщении #0 ,далее по тексту #0) :

ваш модуль экрана = конроллер экрана (ili9341) + графическая панель (Graphic LCD)

собсно ,для того что бы вывыести данные на экран , они проходят следующий путь : 

[приложение(данные,например число) -> графическая библиотека - > драйвер контороллера экрана ] -> контроллер(в данном случае ili9341) -> сигналы на GLCD -> картинка

квадратными скобками обозначеные действия внутри микроконтроллера (stm32).

в вашем случае , графическая библиотека и драйвер контроллера одно целое . 

из моего опыта работы с данными графическими контроллерами (ili9341) он имеет несколько типов подключений : паралелльнй(parallel 8 ,16 и может даже 18 и 24 бита - точно не помню) и последовательный(SPI) . 

тип подключения может выбираться как програмно (во время инициализации драйвера) так и аппаратно (некотоые  пины контроллера экрана притягиваються либо к логической 1 либо к логиескому 0 тем и конфигурируеться интерфейс). 

если вы поптытаетесь передать команды по параллеьной шине ,а контроллер экрана сконфигурирован аппаратно на последовательную - с большой долей вероятности ничего не заработает.

как аппратно сконфигурирован в вашем случае - одним китайцам известно ,но судя по картинкам из сообщения #0 : последовательно ибо написано SPI на PCB плате. 

то есть вам нужно инциализировать дравер с последовательным(SPI) поддключением экрана  , я не знаю как это делаеться средствами ардуино ,но судя по описаному здесь все кроеться в файле utility/mcufriend_serial.h

судя по шелкографии на PCB в сообщении #0  ,на обоих платах имеються контакты (сверху - вниз) :

CS,DC,SDI(MOSI),CLK,SDO(MISO) ,соотвественно , физическо вам надо подлючить эти пины к пина STM32 : 

LCD Module <-> STM32 SPI

  CS  --------------- CS

  DC ----------------Не знаю, более знающие и опытные поправят.

 SDI(MOSI) ------ MOSI

 CLK   --------     CLK

 SDO(MISO) ----- MISO 

     GND ----- GND 

какие имненно пины будут сконфигурированы на стороне STM32 как SPI ,зависит от вас и инициализации драйвера .

имейте ввиду ,что может быть ,что китайцы перепутали с маркировкой на плате между собой пины SDI и SDO(но это не точно ).  

по тачу : 

это отдельный контроллер на той плате где он есть(какая шина - хз,об этом ниже)которые находиться между тач панелью(на экране) и STM32 .судя по картинке он работае по интерфейсу SPI (не знаю могут ли быть для тача те же лини данных SPI что и для ili9341 - подтерживает ли такое соедниение графическая библиотека ? если да ,то пин CS у них должен быть физически разный) 

инициализация экрана с тачем происходить во время инициализации библиотеки экрана(как конкретно? я не знаю, но графическя библиотека должна "знать" о наличии тача ,если она вообще потдерживает работу с тачем )

еще по тачу : то что пины тача соотвествуют обозначению SPI , это одно , на деле же может быть что контреолер тача работает по I2C. 

важно: если графическая библиотека не принимает в свою инициализанию как парметр пин RESET экрана ,то обязательно ,перед инициализацией библиотеки ,сборсить (выставить логический 0) на пине RESET экрана время от 20 до 100 миллисекунд, потом поднять на логическую 1 и потом производить инициализацию библиотеки (котроллера экрана)

b707
Offline
Зарегистрирован: 26.05.2017

mixail844, обращу внимание на некоторые важные моменты:

 - автор первого сообщения и автор последнего вопроса - разные люди, соответвенно и дисплей у последнего - совсем другой чем на картинке

- дисплей на картинке продается как SPI. сконфигурирован как SPI. имеет тач SPI и явно прописанные CS пины для обоих интерфейсов. К чему были все это многословные рассуэдения о переконфигурировании дисплеев?

 простите - вы это трезвый писали?

 

mixail844
Offline
Зарегистрирован: 30.04.2012
угу ,трезвый но в 3 часа ночи .
Вот да , то что это два разных человека , не заметил :(
а описал что бы был общий язык,что бы было ясно на что я ссылаюсь и что имею ввиду.
если не этому то следуешему вопрошающему
mixail844
Offline
Зарегистрирован: 30.04.2012

gavroush пишет:

 А для 16бит?

Извините ), надо было сразу уточнять. 

Нашел только такое:

 BLUEPILL Adapter standard wiring is:
    //LCD pins  |D7 |D6 |D5 |D4 |D3 |D2 |D1 |D0 | |RD |WR |RS |CS |RST| |SD_SS|SD_DI|SD_DO|SD_SCK|
    //STM32 pin |PA7|PA6|PA5|PA4|PA3|PA2|PA1|PA0| |PB0|PB6|PB7|PB8|PB9| |PA15 |PB5  |PB4  |PB3   | **ALT-SPI1**
 
но портов данных только 13....

по теме ,в продолжение #13: 
судя по распиновке адаптера ( BLUEPILL Adapter , какой именно , автор решил не уточнять) на него выведена как шина SPI(|SD_SS|SD_DI|SD_DO|SD_SCK|) так и паралелльная 8ми битная (|D7 |D6 |D5 |D4 |D3 |D2 |D1 |D0 |RD |WR |RS |CS |RST|).
8 ми битная скорее всего относиться к графическому контроллеру , SPI может относиться как к грaфическому контрoллеру так и тачу ,зависит от модуля экрана (см #13)
 
будет ли  конкрентый модуль экрана работать с конкретным микроконтроллером через конкретный адаптер , надо читать документацию
b707
Offline
Зарегистрирован: 26.05.2017

mixail844 пишет:

по теме ,в продолжение #13: 
судя по распиновке адаптера ( BLUEPILL Adapter , какой именно , автор решил не уточнять) на него выведена как шина SPI(|SD_SS|SD_DI|SD_DO|SD_SCK|) так и паралелльная 8ми битная (|D7 |D6 |D5 |D4 |D3 |D2 |D1 |D0 |RD |WR |RS |CS |RST|).
8 ми битная скорее всего относиться к графическому контроллеру , СПИ может относиться как к грaфическому контрoллеру так и тачу ,зависит от модуля экрана (см #13)

михал, эта "шина SPI" относится к Sd -карточке, что абсолютно очевидно из имен пинов |SD_SS|SD_DI|SD_DO|SD_SCK. И на разводку платы посмотрите - на картинке в первом сообщении отлично прослеживается, куда идут дорожки от этих контактов

 

mixail844
Offline
Зарегистрирован: 30.04.2012

b707 пишет:

mixail844 пишет:

по теме ,в продолжение #13: 
судя по распиновке адаптера ( BLUEPILL Adapter , какой именно , автор решил не уточнять) на него выведена как шина SPI(|SD_SS|SD_DI|SD_DO|SD_SCK|) так и паралелльная 8ми битная (|D7 |D6 |D5 |D4 |D3 |D2 |D1 |D0 |RD |WR |RS |CS |RST|).
8 ми битная скорее всего относиться к графическому контроллеру , СПИ может относиться как к грaфическому контрoллеру так и тачу ,зависит от модуля экрана (см #13)

михал, эта "шина SPI" относится к Sd -карточке, что абсолютно очевидно из имен пинов |SD_SS|SD_DI|SD_DO|SD_SCK. И на разводку платы посмотрите - на картинке в первом сообщении отлично прослеживается, куда идут дорожки от этих контактов

 

угу ,вы правы ,позже заметил. не успел поправить , вы на мое сообщение ответили :D

но ничто не мешает на том же SPI "сидеть" и карточке, и графическому контроллеру (или мешает ? ).
а может просто какой то контролер экрана на модуле без SD карточки, будет выведен на пины SPI
b707
Offline
Зарегистрирован: 26.05.2017

mixail844 пишет:

но ничто не мешает на том же SPI "сидеть" и карточке, и графическому контроллеру (или мешает ? ).
а может просто какой то контролер экрана на модуле без SD карточки, будет выведен на пины SPI

Вы в этой ветке спрашиваете или отвечаете? - у меня такой чувство, что вы в этих дисплеях разбираетесь меньше тех, кто тут вопросы задавал :)

mixail844
Offline
Зарегистрирован: 30.04.2012

b707 пишет:

mixail844 пишет:

но ничто не мешает на том же SPI "сидеть" и карточке, и графическому контроллеру (или мешает ? ).
а может просто какой то контролер экрана на модуле без SD карточки, будет выведен на пины SPI

Вы в этой ветке спрашиваете или отвечаете? - у меня такой чувство, что вы в этих дисплеях разбираетесь меньше тех, кто тут вопросы задавал :)

конкретно с ардуиновскими модулями и библиотеками не работал но опыт с графическими контроллерами и библиотеками есть 

 

mixail844 пишет:

 (или мешает ? )

из за отсутсвия опыта по связке контроллеров дисплеев и SD карточек, не могу однозначно утверждать возможно ли их посадить на одну шину данных : с одной стороны "SPI он и в африке SPI" , с другой видел несколько модулей экранов(но не работал с ними) где SPI для SD карточки и SPI для контроллера экрана выведены отдельно , если все так просто, почему не вывести 1 SPI и 2 CS ,может китайцы что то знают

mixail844
Offline
Зарегистрирован: 30.04.2012

ааа я походу тупанул : SPI не равно |SD_SS|SD_DI|SD_DO|SD_SCK|

перемешались мухи с котлетами

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

b707 пишет:

Вы в этой ветке спрашиваете или отвечаете? - у меня такой чувство, что вы в этих дисплеях разбираетесь меньше тех, кто тут вопросы задавал :)

Да шо ж ты злой-то такой сёдня?  С людями надо памягше... 

b707
Offline
Зарегистрирован: 26.05.2017

DetSimen пишет:

Да шо ж ты злой-то такой сёдня?  С людями надо памягше... 

"истинное мурло" под маской не спрячешь, все равно вылезет.

Лана. сигнал принял. буду потише.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

b707 пишет:

Лана. сигнал принял. буду потише.

Не, просто mixail844 он какбэ тут совсем не новичок.