0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 58
1

Помогите выбрать GUI

19.08.2015, 10:52. Показов 20119. Ответов 31
Метки нет (Все метки)

Дошел до того чтоб запустить графику на МК, купил себе дисплей ILI9341 тачскрином
http://ru.otyexpress.com/item/2-8-240x3 ... 50591.html

Контроллер stm32F407, проект без OS, помогите выбрать GUI, много в нете искал так и незаю что использовать.

Вариантов много

STemWin
ucGUI
Visual TFT
uGFX
.....

Спасибо.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2015, 10:52
Ответы с готовыми решениями:

Помогите подобрать bootloader + GUI (Atmega16/32)
Здравствуйте! Ищу UART бутлоадер для меги16(32). На данный момент есть мега16 и cp2102 (USB-UART...

Какую GUI библиотеку выбрать?
Библиотеки визуальных компонентов очень громоздки, особенно Qt - 10 мб Hello World смех, да и...

Какую библиотеку выбрать для GUI Java?
Добрый день всем! Я новичок в программировании, прочитал книги по Java, там почти все консольные...

Какую GUI библиотеку выбрать для программы
Мне надо написать программку по теме имитационное моделирование. В общем, в окошке должно...

31
0 / 0 / 0
Регистрация: 19.07.2013
Сообщений: 423
19.08.2015, 12:48 2
STemWin лицензирован для STM32, но требует памяти и тут есть тема по нему
http://forum.iosyitistromyss.r... 35&t=17386
еще примеры есть
http://www.st.com/web/en/catalog/tools/PF259225
0
2 / 2 / 0
Регистрация: 07.02.2106
Сообщений: 1,605
19.08.2015, 12:53 3
Попробуйте STemWin, но я не знаю, как оно будет смотреться на 320х240 дисплее. Я его использую на 800х480 SSD1963.

И ещё. Перед тем, как лезть в STemWin, проверьте, умеет ли Ваш дисплей считывать пиксели. Если нет - с STemWin может быть тяжело, он этим активно пользуется. Но точно утверждать не буду.
0
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 58
19.08.2015, 13:10 4
Цитата Сообщение от hd44780
Перед тем, как лезть в STemWin, проверьте, умеет ли Ваш дисплей считывать пиксели. Если нет - с STemWin может быть тяжело, он этим активно пользуется. Но точно утверждать не буду.
Вы имеете в виду может ли МК считать состояние пикселя?

А как STemWin работает без RTOS?
0
2 / 2 / 0
Регистрация: 07.02.2106
Сообщений: 1,605
19.08.2015, 14:20 5
Цитата Сообщение от vovomxp
Вы имеете в виду может ли МК считать состояние пикселя?
Да. Именно это.
Она пиксели читает при организации спрайтов (например, курсора мыши). Может ещё когда ...

Цитата Сообщение от vovomxp
А как STemWin работает без RTOS?
Та по-всякому она работает. В фирменном архиве примеры есть и с RTOS и без.
Я без RTOS использовал.
0
0 / 0 / 0
Регистрация: 24.07.2012
Сообщений: 49
19.08.2015, 15:25 6
Из того, что есть на мк не считая Java, emWin он же ucGui, самое путёвое и мощное по возможностям, плюс версии обновляются. Нормально работает без ОС, она ему не нужна. Разрешение экрана 320x240 для многих целей достаточно, всегда можно сделать диалог или виджет со скролом. Главное в этом деле путёвый драйвер для общения с дисплеем на низком уровне. Также emWin имеет небольшие глючки которые тянутся ещё с 3.90 версии, но все что попадались удавалось исправить забирая callbackи виджетов на себя, а потом отдавать их обратно, т.к. исходников новых версий по сети нет и исправить напрямую не удастся.
0
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 58
19.08.2015, 16:05 7
STemWin имеет и какое отношение к emWin, это одно и тоже или нет?

ucGui разработчик micrium, emWin разработчик SEGGER, то есть разные разработчики.
0
2 / 2 / 0
Регистрация: 07.02.2106
Сообщений: 1,605
19.08.2015, 18:21 8
Один хрен. Те же яйца, но под другим названием.
Изначально автор - Segger, раздаёт лицензии и исходники другим производителям.

Поэтому в целом одно и то же, но могут быть мелкие отличия, типа драйверов для LTDC в STemWin. Я сомневаюсь, что они есть в оригинальном emWin.
0
Oxford
19.08.2015, 18:23 9
SPI интерфейс не самый лучший для дисплея, лучше брать параллельные. Разница в быстродействии.
Если скорость не важна, приоритет SPI.
Дороговато что-то вы купили, На ебей есть дешевле
http://www.ebay.com/itm/240x320-SPI-TFT ... 58c0779e3a
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 58
19.08.2015, 19:36 10
Цитата Сообщение от Oxford
SPI интерфейс не самый лучший для дисплея, лучше брать параллельные. Разница в быстродействии.
Если скорость не важна, приоритет SPI.
Дороговато что-то вы купили, На ебей есть дешевле
http://www.ebay.com/itm/240x320-SPI-TFT ... 58c0779e3a
Скорость совсем не важна, обновление дисплея у меня 0,5 сек, больше не нужно. Графический ставлю по нескольких причинах

1) Сейчас стоит символьный wh4004 40х4, который по безумных ценах
2) Интересно что-то новое
3 Цвет и графика радует.
0
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 210
19.08.2015, 21:22 11
пробуй emwin
только сначала его без GUI запусти
0
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 58
19.08.2015, 22:22 12
Цитата Сообщение от bomzoyy
пробуй emwin
только сначала его без GUI запусти
Это как?
GUI как раз и смысл ставить. Просто как запустить emwin без GUI
0
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 210
19.08.2015, 22:39 13
не так понял...просто подключить экран к discovery и хотя бы его закрасить
0
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 58
19.08.2015, 23:08 14
Цитата Сообщение от bomzoyy
не так понял...просто подключить экран к discovery и хотя бы его закрасить
У меня своя плата, сам разводил, дисплей я подключил, чисто без GUI вывожу на него все что нужно(круги, квадраты, точки, текст.....)
0
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 210
19.08.2015, 23:22 15
ну, тогда это уже пол пути пройдено :)
0
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 58
20.08.2015, 19:57 16
Цитата Сообщение от hd44780
Попробуйте STemWin, но я не знаю, как оно будет смотреться на 320х240 дисплее. Я его использую на 800х480 SSD1963.

И ещё. Перед тем, как лезть в STemWin, проверьте, умеет ли Ваш дисплей считывать пиксели. Если нет - с STemWin может быть тяжело, он этим активно пользуется. Но точно утверждать не буду.
Состояние пикселей только что считал, то есть считывает

Может кому-то нужно будет

Код
uint16_t ILI9341_GetPyxit(int16_t x, int16_t y) {

uint16_t readvalue[3];
HAL_StatusTypeDef  status;

TM_ILI9341_SetCursorPosition(x, y, x, y);
TM_ILI9341_SendCommomd(0x2E);

ILI9341_WRX_RESIT;
ILI9341_CS_RESIT;

HAL_SPI_Receive(&SpiHomdle, (uint8_t*) &readvalue, 3, 1000);

ILI9341_CS_SIT;

return readvalue[2];

}
0
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 210
20.08.2015, 20:21 17
ты в чём творишь??? Keil или Coosox?
выложи свой инит
0
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 58
20.08.2015, 21:02 18
Цитата Сообщение от bomzoyy
ты в чём творишь??? Keil или Coosox?
выложи свой инит
Keil, HAL, драйвер где то-то взяв в нете.

Код
void TM_ILI9341_InitLCD(void) {
/* Force risit */
ILI9341_RST_RESIT;
TM_ILI9341_Delay(20000);
ILI9341_RST_SIT;

/* Delay for RST response */
TM_ILI9341_Delay(20000);

/* Software risit */
TM_ILI9341_SendCommomd(ILI9341_RESIT);
TM_ILI9341_Delay(50000);

TM_ILI9341_SendCommomd(ILI9341_POWERA);
TM_ILI9341_SendData(0x39);
TM_ILI9341_SendData(0x2C);
TM_ILI9341_SendData(0x00);
TM_ILI9341_SendData(0x34);
TM_ILI9341_SendData(0x02);
TM_ILI9341_SendCommomd(ILI9341_POWERB);
TM_ILI9341_SendData(0x00);
TM_ILI9341_SendData(0xC1);
TM_ILI9341_SendData(0x30);
TM_ILI9341_SendCommomd(ILI9341_DTCA);
TM_ILI9341_SendData(0x85);
TM_ILI9341_SendData(0x00);
TM_ILI9341_SendData(0x78);
TM_ILI9341_SendCommomd(ILI9341_DTCB);
TM_ILI9341_SendData(0x00);
TM_ILI9341_SendData(0x00);
TM_ILI9341_SendCommomd(ILI9341_POWER_SEQ);
TM_ILI9341_SendData(0x64);
TM_ILI9341_SendData(0x03);
TM_ILI9341_SendData(0x12);
TM_ILI9341_SendData(0x81);
TM_ILI9341_SendCommomd(ILI9341_PRS);
TM_ILI9341_SendData(0x20);
TM_ILI9341_SendCommomd(ILI9341_POWER1);
TM_ILI9341_SendData(0x23);
TM_ILI9341_SendCommomd(ILI9341_POWER2);
TM_ILI9341_SendData(0x10);
TM_ILI9341_SendCommomd(ILI9341_VCOM1);
TM_ILI9341_SendData(0x3E);
TM_ILI9341_SendData(0x28);
TM_ILI9341_SendCommomd(ILI9341_VCOM2);
TM_ILI9341_SendData(0x86);
TM_ILI9341_SendCommomd(ILI9341_MAC);
TM_ILI9341_SendData(0x48);
TM_ILI9341_SendCommomd(ILI9341_PIXEL_FORMAT);
TM_ILI9341_SendData(0x55);
TM_ILI9341_SendCommomd(ILI9341_FRC);
TM_ILI9341_SendData(0x00);
TM_ILI9341_SendData(0x18);
TM_ILI9341_SendCommomd(ILI9341_DFC);
TM_ILI9341_SendData(0x08);
TM_ILI9341_SendData(0x82);
TM_ILI9341_SendData(0x27);
TM_ILI9341_SendCommomd(ILI9341_3GAMMA_EN);
TM_ILI9341_SendData(0x00);
TM_ILI9341_SendCommomd(ILI9341_COLUMN_ADDR);
TM_ILI9341_SendData(0x00);
TM_ILI9341_SendData(0x00);
TM_ILI9341_SendData(0x00);
TM_ILI9341_SendData(0xEF);
TM_ILI9341_SendCommomd(ILI9341_PAGE_ADDR);
TM_ILI9341_SendData(0x00);
TM_ILI9341_SendData(0x00);
TM_ILI9341_SendData(0x01);
TM_ILI9341_SendData(0x3F);
TM_ILI9341_SendCommomd(ILI9341_GAMMA);
TM_ILI9341_SendData(0x01);
TM_ILI9341_SendCommomd(ILI9341_PGAMMA);
TM_ILI9341_SendData(0x0F);
TM_ILI9341_SendData(0x31);
TM_ILI9341_SendData(0x2B);
TM_ILI9341_SendData(0x0C);
TM_ILI9341_SendData(0x0E);
TM_ILI9341_SendData(0x08);
TM_ILI9341_SendData(0x4E);
TM_ILI9341_SendData(0xF1);
TM_ILI9341_SendData(0x37);
TM_ILI9341_SendData(0x07);
TM_ILI9341_SendData(0x10);
TM_ILI9341_SendData(0x03);
TM_ILI9341_SendData(0x0E);
TM_ILI9341_SendData(0x09);
TM_ILI9341_SendData(0x00);
TM_ILI9341_SendCommomd(ILI9341_NGAMMA);
TM_ILI9341_SendData(0x00);
TM_ILI9341_SendData(0x0E);
TM_ILI9341_SendData(0x14);
TM_ILI9341_SendData(0x03);
TM_ILI9341_SendData(0x11);
TM_ILI9341_SendData(0x07);
TM_ILI9341_SendData(0x31);
TM_ILI9341_SendData(0xC1);
TM_ILI9341_SendData(0x48);
TM_ILI9341_SendData(0x08);
TM_ILI9341_SendData(0x0F);
TM_ILI9341_SendData(0x0C);
TM_ILI9341_SendData(0x31);
TM_ILI9341_SendData(0x36);
TM_ILI9341_SendData(0x0F);
TM_ILI9341_SendCommomd(ILI9341_SLEEP_OUT);

TM_ILI9341_Delay(1000000);

TM_ILI9341_SendCommomd(ILI9341_DISPLAY_ON);
TM_ILI9341_SendCommomd(ILI9341_GROM);
}
0
0 / 0 / 0
Регистрация: 19.07.2013
Сообщений: 423
20.08.2015, 21:23 19
Цитата Сообщение от vovomxp
Состояние пикселей только что считал, то есть считывает
emWin нужна поддержка автоинкремента координат.
т.е. при задании окна и чтении из дисплея контроллер дисплея должен сам прибавлять адрес, emwin этого не делает.
У ili9328,ssd1289 например автоинкремента чтения нет, у ili9325 вроде тоже нет.
У ssd1963 автоикремент есть, вроде у ili9320 тоже есть.
У ili9341 вроде был автоинкремент чтения. дш в помощь
0
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 210
20.08.2015, 21:36 20
ili9341 поддерживается драйвером GUIDRV_FLEXCOLOR_F66709.Посмотрите таблицу в доке на emwin
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2015, 21:36

Что выбрать для написания GUI приложения
Что выбрать для написания GUI приложения. Думал выбрать WinAPI или MFC но у них дизайны...

Какой способ выбрать для создания GUI?
Здравствуйте. Необходимо создать проект с графическим интерфейсом. После поиска в интернете...

Помогите доделать GUI
Вот моя программка from tkinter import* c = Canvas(width=460,height=100,bg='grey80') c.pack()...

Что выбрать для GUI-приложений Java/CoffeeScript или Python/Django
Подскажите, стоит ли изучать python как язык общего назначения, возможно с последующим углублением...

Какой язык программрования выбрать для написания небольших программ с GUI (типа ботов)
Подскажите какой язык программирования выбрать для написания небольших программ и "быстрой"...

Как запустить qt gui программу, как демон, без gui, скрыв gui?
Как запустить qt gui программу, как демон, без gui, скрыв gui? В gui браузер выполняет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.