Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

ILI9341 + stm32f103c8t6

Непрочитано 26.06.2018, 02:04  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию ILI9341 + stm32f103c8t6

Здравствуйте. Пробую запустить этот дисплей ILI9341. Но на дисплее не написано кто он, но он точно такой как Adafruit ILi9341. Красная плата сзади и с SD Card. Может кто запускал это помогите плиз. Вот Написал код чтоб считать ID дисплея но читает 0х45454545.

Запускаю без FSMC так как ее там нет и не работал с ней пока. Запускаю по 8-битной шине... SPI нет
Вложения:
Тип файла: rar ILI9341.rar (2.1 Кб, 0 просмотров)
Реклама:
miwutka вне форума  
Непрочитано 26.06.2018, 03:27  
CERGEI1982
Почётный гражданин KAZUS.RUN
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,578
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: ILI9341 + stm32f103c8t6

Как вам такое,подороже но с gui
https://www.youtube.com/watch?v=dZVb...m6N1l_hxTsUIlS
__________________
Глаза боятся,а руки делают.

Последний раз редактировалось CERGEI1982; 26.06.2018 в 03:58.
CERGEI1982 вне форума  
Сказали "Спасибо" CERGEI1982
miwutka (26.06.2018)
Непрочитано 26.06.2018, 06:41  
ampy
Гражданин KAZUS.RUN
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 996
Сказал спасибо: 448
Сказали Спасибо 388 раз(а) в 202 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: ILI9341 + stm32f103c8t6

Я так и не смог добиться от 9341 его идентификатора.
Не поленился нашел рар и распаковал Ваш архив.
Это вообще не похоже на заклинание инициализации. Вот заклинание:

Код:
void ILI9341_init(void) {
	LCD_IDP=0x9341;
    GPIO_SetBits(GPIOD, GPIO_Pin_7);   //CS
    GPIO_ResetBits(GPIOD, GPIO_Pin_11);//RS
    GPIO_SetBits(GPIOD, GPIO_Pin_4);   //-RD
    GPIO_SetBits(GPIOD, GPIO_Pin_5);   //-RW
	//vci=2.8V

	//Reset LCD Driver
	GPIO_SetBits(GPIOE, GPIO_Pin_1);

	delay_ms(10);

	GPIO_ResetBits(GPIOE, GPIO_Pin_1);

	delay_ms(100);   //this delay time is necessary

	GPIO_SetBits(GPIOE, GPIO_Pin_1);

	delay_ms(100);

	// Îòêðûòü Êðèñòàëë
    Delay(200);
	Delay(200);

    LCD_WR_REG(207);
    LCD_WR_DATA(0);
    LCD_WR_DATA(217);
    LCD_WR_DATA(48);
    Delay(200);
    LCD_WR_REG(237);
    LCD_WR_DATA(100);
    LCD_WR_DATA(3);
    LCD_WR_DATA(18);
    LCD_WR_DATA(129);
    Delay(200);
    LCD_WR_REG(232);
    LCD_WR_DATA(133);
    LCD_WR_DATA(16);
    LCD_WR_DATA(120);
    Delay(200);
    LCD_WR_REG(203);
    LCD_WR_DATA(57);
    LCD_WR_DATA(44);
    LCD_WR_DATA(0);
    LCD_WR_DATA(52);
    LCD_WR_DATA(2);
    Delay(200);
    LCD_WR_REG(247);
    LCD_WR_DATA(32);
    Delay(200);
    LCD_WR_REG(234);
    LCD_WR_DATA(0);
    LCD_WR_DATA(0);
    Delay(200);
    LCD_WR_REG(192);
    LCD_WR_DATA(33);
    Delay(200);
    LCD_WR_REG(193);
    LCD_WR_DATA(18);
    Delay(200);
    LCD_WR_REG(197);
    LCD_WR_DATA(50);
    LCD_WR_DATA(60);
    Delay(200);
    LCD_WR_REG(199);
    LCD_WR_DATA(193);
    Delay(200);
    LCD_WR_REG(54);
    LCD_WR_DATA(8);
    Delay(200);
    LCD_WR_REG(58);
    LCD_WR_DATA(85);
    Delay(200);
    LCD_WR_REG(177);
    LCD_WR_DATA(0);
    LCD_WR_DATA(24);
    Delay(200);
    LCD_WR_REG(182);
    LCD_WR_DATA(10);
    LCD_WR_DATA(162);
    LCD_WR_REG(242);
    LCD_WR_DATA(0);
    Delay(200);
    LCD_WR_REG(38);
    LCD_WR_DATA(1);
    Delay(200);
    LCD_WR_REG(224);
    LCD_WR_DATA(15);
    LCD_WR_DATA(32);
    LCD_WR_DATA(30);
    LCD_WR_DATA(9);
    LCD_WR_DATA(18);
    LCD_WR_DATA(11);
    LCD_WR_DATA(80);
    LCD_WR_DATA(186);
    LCD_WR_DATA(68);
    LCD_WR_DATA(9);
    LCD_WR_DATA(20);
    LCD_WR_DATA(5);
    LCD_WR_DATA(35);
    LCD_WR_DATA(33);
    LCD_WR_DATA(0);
    Delay(200);
    LCD_WR_REG(225);
    LCD_WR_DATA(0);
    LCD_WR_DATA(25);
    LCD_WR_DATA(25);
    LCD_WR_DATA(0);
    LCD_WR_DATA(18);
    LCD_WR_DATA(7);
    LCD_WR_DATA(45);
    LCD_WR_DATA(40);
    LCD_WR_DATA(63);
    LCD_WR_DATA(2);
    LCD_WR_DATA(10);
    LCD_WR_DATA(8);
    LCD_WR_DATA(37);
    LCD_WR_DATA(45);
    LCD_WR_DATA(15);
    Delay(200);
    LCD_WR_REG(17);
    Delay(200);
    Delay(150);
    LCD_WR_REG(41);
    Delay(200);

  {
    unsigned int x, y, c;  
	//ini();

	    LCD_WR_REG(0x2A);
        LCD_WR_Data(0 ›› 8);
        LCD_WR_Data(0 & 0xFF);
        LCD_WR_Data(240 ›› 8);
        LCD_WR_Data(240 & 0xFF);
	    LCD_WR_REG(0x2B);
        LCD_WR_Data(0 ›› 8);
        LCD_WR_Data(0 & 0xFF);
        LCD_WR_Data(320 ›› 8);
        LCD_WR_Data(320 & 0xFF);

    LCD_WR_REG(0x2C);
	for (y=0;y‹320;y++) {
  	  for(x=0;x‹240;x++) {
		c = ((y ›› 3) ‹‹ 5) + (x ››3);
	    LCD_WR_Data(c );
	    LCD_WR_REG(0x3C);
		Delay(10);
	  }
	}
  }
}
ampy вне форума  
Сказали "Спасибо" ampy
miwutka (26.06.2018)
Непрочитано 26.06.2018, 08:36  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: ILI9341 + stm32f103c8t6

Сообщение от CERGEI1982 Посмотреть сообщение
Как вам такое,подороже но с gui
https://www.youtube.com/watch?v=dZVb...m6N1l_hxTsUIlS
Прикольно, но мне надо маленький. Да и другого нет и не хотелось бы ждать новый дисплей...
miwutka вне форума  
Непрочитано 26.06.2018, 08:38  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: ILI9341 + stm32f103c8t6

ampy, попробую ваш инит. Если ваш не заработает значит я гдето еще набокопорил.....
miwutka вне форума  
Непрочитано 26.06.2018, 09:34  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: ILI9341 + stm32f103c8t6

ampy, как-то у вас через задницу инициализация. Слабо по-человечески сделать? Организуем массив (в данном случае надо добавить еще и задержки) и — вуаля!
Жуткой нечитаемой копипасты не будет. И код меньше будет.
А если еще и сделать это как КА, то и тормозов никаких при инициализации дисплея не будет.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 26.06.2018, 09:43  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: ILI9341 + stm32f103c8t6

Сообщение от CERGEI1982 Посмотреть сообщение
https://www.youtube.com/watch?v=dZVb...m6N1l_hxTsUIlS
По ссылке вообще непонятная муть: чувак какую-то программку скачал, нарисовал в ней виджет и тот отобразился на дисплее. И где здесь "урок"? Глянул дальше — подобная лажа.
"учитель", блин! Минусовать его по полной за такие "уроки"...
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 26.06.2018, 10:13  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: ILI9341 + stm32f103c8t6

Сообщение от STM32F0 Посмотреть сообщение
Не будет
Очень даже будет. Сравни 100500 вызовов функции с изменяющимися параметрами и один вызов этой функции в цикле, где параметры лежат в массиве.
Пример:
Нажмите, чтобы открыть спойлер
Код:
static const uint16_t ILI932x_regValues[] = {
	ILI932X_START_OSC        , 0x0001, // 0x00
	TFTLCD_DELAY             , 100,
	ILI932X_DISP_CTRL1       , 0x0121, // 0x07
	ILI932X_DRIV_OUT_CTRL    , 0x0100, // 0x01
	ILI932X_DRIV_WAV_CTRL    , 0x0700, // 0x02
	ILI932X_ENTRY_MOD        , 0x0030, // 0x03
	ILI932X_RESIZE_CTRL      , 0x0000, // 0x04
	ILI932X_DISP_CTRL2       , 0x0202, // 0x08
	ILI932X_DISP_CTRL3       , 0x0000, // 0x09
	ILI932X_DISP_CTRL4       , 0x0000, // 0x0A
	ILI932X_RGB_DISP_IF_CTRL1, 0x0001, // 0x0C
	ILI932X_FRM_MARKER_POS   , 0x0000, // 0x0D
	ILI932X_RGB_DISP_IF_CTRL2, 0x0000, // 0x0F
	ILI932X_POW_CTRL1        , 0x16b0, // 0x10
	ILI932X_POW_CTRL2        , 0x0007, // 0x11
	ILI932X_POW_CTRL3        , 0x0138, // 0x12
	ILI932X_POW_CTRL4        , 0x0b00, // 0x13
	ILI932X_POW_CTRL7        , 0x0000, // 0x29
	TFTLCD_DELAY             , 200,
	ILI932X_FRM_RATE_COL_CTRL, 0x0000, // 0x2B  (100Hz)
	TFTLCD_DELAY             , 50,
	ILI932X_GAMMA_CTRL1      , 0x0000, // 0x30
	ILI932X_GAMMA_CTRL2      , 0x0000, // 0x31
	ILI932X_GAMMA_CTRL3      , 0x0000, // 0x32
	ILI932X_GAMMA_CTRL4      , 0x0206, // 0x35
	ILI932X_GAMMA_CTRL5      , 0x0808, // 0x36
	ILI932X_GAMMA_CTRL6      , 0x0007, // 0x37
	ILI932X_GAMMA_CTRL7      , 0x0201, // 0x38
	ILI932X_GAMMA_CTRL8      , 0x0000, // 0x39
	ILI932X_GAMMA_CTRL9      , 0x0000, // 0x3C
	ILI932X_GAMMA_CTRL10     , 0x0000, // 0x3D
	ILI932X_GRAM_HOR_AD      , 0x0000, // 0x20
	ILI932X_GRAM_VER_AD      , 0x0000, // 0x21
	ILI932X_HOR_START_AD     , 0x0000, // 0x50
	ILI932X_HOR_END_AD       , TFTWIDTH-1, // 0x51
	ILI932X_VER_START_AD     , 0x0000, // 0x52
	ILI932X_VER_END_AD       , TFTHEIGHT-1, // 0x53
	ILI932X_GATE_SCAN_CTRL1  , 0x2700, // 0x60
	ILI932X_GATE_SCAN_CTRL2  , 0x0001, // 0x61
	ILI932X_GATE_SCAN_CTRL3  , 0x0000, // 0x6A
	ILI932X_PANEL_IF_CTRL1   , 0x0010, // 0x90
	ILI932X_PANEL_IF_CTRL2   , 0x0000, // 0x92
	ILI932X_PANEL_IF_CTRL3   , 0x0003, // 0x93
	ILI932X_PANEL_IF_CTRL4   , 0x0110, // 0x95
	ILI932X_PANEL_IF_CTRL5   , 0x0000, // 0x97
	ILI932X_PANEL_IF_CTRL6   , 0x0000, // 0x98
	TFTLCD_DELAY             , 50,
	ILI932X_DISP_CTRL1       , 0x0133, // 0x07
};

uint16_t LCD_init(){
	LCD_read_id();
	if(LCD_id › 0x931f && LCD_id ‹ 0x932a){ // 932x
		int i, s = sizeof(ILI932x_regValues)/sizeof(uint16_t);
		for(i = 0; i ‹ s;){
			uint16_t a = ILI932x_regValues[i++];
			uint16_t b = ILI932x_regValues[i++];
			if(a == TFTLCD_DELAY) Delay(b);
			else write_reg(a, b);
		}
		uint16_t addr;
		for(addr = 0x80; addr ‹ 0x86; ++addr)
			write_reg(addr, 0);
	}
	return LCD_id;
}

Но это — через задницу, потому что задержки очень большие при инициализации. Надо делать конечным автоматом.
// что за идиотский здесь движок, который не сворачивает длинные блоки кода? Я для ЛОРа подобный функционал черт-те когда реализовал в юзерскриптах.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 26.06.2018, 10:13  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: ILI9341 + stm32f103c8t6

Нет смысла заколдовывать дисплей, если нет рабочего интерфейса. Пока не получите верный ID, не теряйте время с чужими портянками говнокода.
Easyrider83 вне форума  
Непрочитано 26.06.2018, 10:16  
ampy
Гражданин KAZUS.RUN
 
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 996
Сказал спасибо: 448
Сказали Спасибо 388 раз(а) в 202 сообщении(ях)
ampy на пути к лучшему
По умолчанию Re: ILI9341 + stm32f103c8t6

Сообщение от eddy Посмотреть сообщение
ampy, как-то у вас через задницу инициализация. Слабо по-человечески сделать?
Это из примера к плате. Работает - не трогаю. Инициализация дело темное... Исследованию не подлежит. Да и вообще давно не брал в руки эту плату... Код особо меньше не будет (в смысле места занимать во флеши). Может и больше стать.

Там если переделывать то всё... Я только комменты с китайского перевел (не тут а в других местах).

В конце в скобках кажется уже идёт заполнение экрана.

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

Последний раз редактировалось ampy; 26.06.2018 в 10:43.
ampy вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ili9341 SPI dimdidim ARM 35 02.12.2018 20:29
Дисплей ILI9341 на STM32F429 по SPI radian ARM 4 12.11.2017 05:55
Продам три дисплея 3,2" ILI9341 AndrFV Барахолка электронных компонентов 2 19.09.2017 09:43
поворот графических элементов на любой градус ILI9341, stm32 dimdidim ARM 17 17.09.2016 21:06
STM32F103C8T6 Таймер и прерывание по окончании счета zeon13 ARM 13 23.08.2016 09:18


Часовой пояс GMT +4, время: 08:56.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.