Перейти к содержанию

Stm32F429 + Tft


den2life

Рекомендуемые сообщения

Помогите Пожалуйста. (среда Keil, ЦП: STM32429VG)

Вообщем не получается настроить проц для экрана 480 на 272 RGB, использую встроенный контроллер LTDC. Экран без контроллер.

даташит от экрана вставил.

Вот мой пример инициализации для данного экрана.

void initialization_LTDC (void)
{

 LTDC_InitTypeDef	   LTDC_InitStruct;
 LTDC_Layer_InitTypeDef LTDC_Layer_InitStruct;
 //A, B, C, D, E
  RCC->AHB1ENR |= (1<<4)|(1<<3)|(1<<2)|(1<<1)|(1<<0);

 GPIOE->MODER |= (1<<20); //DISP


 GPIOA->MODER |= (1<<25)| //12
	  (1<<23)| //11
	  (1<<13)| //6
	  (1<<9)|  //4
	  (1<<7);  //3

 GPIOB->MODER |= (1<<23)| //11
	  (1<<21)| //10
	  (1<<19)| //9
	  (1<<17)| //8
	  (1<<3)|  //1
	  (1<<1);  //0

 GPIOC->MODER |= (1<<21)| //10
	  (1<<15)| //7
	  (1<<13); //6

 GPIOE->MODER |= (1<<31)| //15
	  (1<<29)| //14
	  (1<<27)| //13
	  (1<<25)| //12
	  (1<<23); //11

 GPIOD->MODER |= (1<<21)| //10
	  (1<<7);  //3

 GPIOA->OSPEEDR |= 0x3C033C0;
 GPIOB->OSPEEDR |= 0xFF000F;
 GPIOC->OSPEEDR |= 0x30F000;
 GPIOE->OSPEEDR |= 0xFFC00000;
 GPIOD->OSPEEDR |= 0x3000C0;

 GPIOA->AFR[0] |= 0xE0EE000;
 GPIOA->AFR[1] |= 0xEE000;
 GPIOB->AFR[0] |= 0xEE;
 GPIOB->AFR[1] |= 0xEEEE;
 GPIOC->AFR[0] |= 0xEE000000;
 GPIOC->AFR[1] |= 0xE00;
 GPIOE->AFR[1] |= 0xEEEEE000;
 GPIOD->AFR[0] |= 0xE000;
 GPIOD->AFR[1] |= 0xE00;

 //LTDC
 RCC->APB2ENR |= (1<<26);

 //DMA2D
 RCC->AHB1ENR |= (1<<23);
 /* Configure PLLSAI prescalers for LCD */
 /* Enable Pixel Clock */
 /* PLLSAI_VCO Input = HSE_VALUE/PLL_M = 1 Mhz */
 /* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAI_N = 192 Mhz */
 /* PLLLCDCLK = PLLSAI_VCO Output/PLLSAI_R = 192/4 = 48 Mhz */
 /* LTDC clock frequency = PLLLCDCLK / RCC_PLLSAIDivR = 48/8 = 6 Mhz */
 RCC_PLLSAIConfig(192, 7, 4);
 RCC_LTDCCLKDivConfig(RCC_PLLSAIDivR_Div8);

//RCC->PLLSAICFGR |=
 /* Enable PLLSAI Clock */
 RCC_PLLSAICmd(ENABLE);
 /* Wait for PLLSAI activation */
 while(RCC_GetFlagStatus(RCC_FLAG_PLLSAIRDY) == RESET)
 {
 }

/* LCD Size (Width and Height) */
#define  LCD_PIXEL_WIDTH    ((uint16_t)480)
#define  LCD_PIXEL_HEIGHT   ((uint16_t)272)
#define LCD_FRAME_BUFFER	   ((uint32_t)0xD0000000)
#define BUFFER_OFFSET		  ((uint32_t)0x50000)
#define HFP 2  //// HFP  96
#define HSYNC 40 //// HSYNC  22
#define HBP 87  //// HBP  33
///*************************************************************************************************
#define VFP 2  //// VFP  5
#define VSYNC 9  //// VSYNC 1
#define VBP 11  //// VBP  35
///*************************************************************************************************
#define ACTIVE_W 567//(HSYNC + LCD_PIXEL_WIDTH + HBP - 1)  //
#define ACTIVE_H 283//(VSYNC + LCD_PIXEL_HEIGHT + VBP - 1)
///*************************************************************************************************
#define TOTAL_WIDTH 575//(HSYNC + HBP + LCD_PIXEL_WIDTH + HFP - 1)  //
#define TOTAL_HEIGHT 286//(VSYNC + VBP + LCD_PIXEL_HEIGHT + VFP - 1)
///*************************************************************************************************
 /* Timing configuration */ 
 /* Configure horizontal synchronization width */	
 LTDC_InitStruct.LTDC_HorizontalSync = HSYNC;
 /* Configure vertical synchronization height */
 LTDC_InitStruct.LTDC_VerticalSync = VSYNC;
 /* Configure accumulated horizontal back porch */
 LTDC_InitStruct.LTDC_AccumulatedHBP = HBP+HSYNC-1;
 /* Configure accumulated vertical back porch */
 LTDC_InitStruct.LTDC_AccumulatedVBP = VSYNC+VBP-1; 
 /* Configure accumulated active width */ 
 LTDC_InitStruct.LTDC_AccumulatedActiveW = ACTIVE_W;
 /* Configure accumulated active height */
 LTDC_InitStruct.LTDC_AccumulatedActiveH = ACTIVE_H;
 /* Configure total width */
 LTDC_InitStruct.LTDC_TotalWidth = TOTAL_WIDTH;
 /* Configure total height */
 LTDC_InitStruct.LTDC_TotalHeigh = TOTAL_HEIGHT;

 LTDC_Init(&LTDC_InitStruct);

 /*//LTDC
 LTDC->SSCR = 0x90001; //Sync
 LTDC->BPCR = 0xE0005; //Back Porch
 LTDC->AWCR = 0x11E01E5; //Active Width
 LTDC->TWCR = 0x12001E7; //Total Width
 */
   /* Windowing configuration */
 /* In this case all the active display area is used to display a picture then :
 Horizontal start = horizontal synchronization + Horizontal back porch = 30
 Horizontal stop = Horizontal start + window width -1 = 30 + 240 -1
 Vertical start   = vertical synchronization + vertical back porch	 = 4
 Vertical stop   = Vertical start + window height -1  = 4 + 320 -1	  */	 
LTDC_Layer_InitStruct.LTDC_HorizontalStart = HBP+HSYNC;
LTDC_Layer_InitStruct.LTDC_HorizontalStop = (LCD_PIXEL_WIDTH + HBP+HSYNC - 1);
LTDC_Layer_InitStruct.LTDC_VerticalStart = VSYNC + VBP;
LTDC_Layer_InitStruct.LTDC_VerticalStop = (LCD_PIXEL_HEIGHT + VSYNC+VBP - 1);

 /* Pixel Format configuration*/
 LTDC_Layer_InitStruct.LTDC_PixelFormat = LTDC_Pixelformat_RGB565;
 /* Alpha constant (255 totally opaque) */
 LTDC_Layer_InitStruct.LTDC_ConstantAlpha = 255;
 /* Default Color configuration (configure A,R,G,B component values) */		 
 LTDC_Layer_InitStruct.LTDC_DefaultColorBlue = 255;	   
 LTDC_Layer_InitStruct.LTDC_DefaultColorGreen = 255;	  
 LTDC_Layer_InitStruct.LTDC_DefaultColorRed = 255;		
 LTDC_Layer_InitStruct.LTDC_DefaultColorAlpha = 0;
 /* Configure blending factors */	  
 LTDC_Layer_InitStruct.LTDC_BlendingFactor_1 = LTDC_BlendingFactor1_CA;   
 LTDC_Layer_InitStruct.LTDC_BlendingFactor_2 = LTDC_BlendingFactor2_CA;

 /* the length of one line of pixels in bytes + 3 then :
 Line Lenth = Active high width x number of bytes per pixel + 3
 Active high width		 = LCD_PIXEL_WIDTH
 number of bytes per pixel = 2    (pixel_format : RGB565)
 */
 LTDC_Layer_InitStruct.LTDC_CFBLineLength = ((LCD_PIXEL_WIDTH * 2) + 3);
 /* the pitch is the increment from the start of one line of pixels to the
 start of the next line in bytes, then :
 Pitch = Active high width x number of bytes per pixel */
 LTDC_Layer_InitStruct.LTDC_CFBPitch = (LCD_PIXEL_WIDTH * 2);

 /* Configure the number of lines */ 
 LTDC_Layer_InitStruct.LTDC_CFBLineNumber = LCD_PIXEL_HEIGHT;

 /* Start Address configuration : the LCD Frame buffer is defined on SDRAM */   
 LTDC_Layer_InitStruct.LTDC_CFBStartAdress = LCD_FRAME_BUFFER;

 /* Initialize LTDC layer 1 */
 LTDC_LayerInit(LTDC_Layer1, &LTDC_Layer_InitStruct);

 /* Configure Layer2 */
 /* Start Address configuration : the LCD Frame buffer is defined on SDRAM w/ Offset */	
 LTDC_Layer_InitStruct.LTDC_CFBStartAdress = LCD_FRAME_BUFFER + BUFFER_OFFSET;

 /* Configure blending factors */	  
 LTDC_Layer_InitStruct.LTDC_BlendingFactor_1 = LTDC_BlendingFactor1_PAxCA;   
 LTDC_Layer_InitStruct.LTDC_BlendingFactor_2 = LTDC_BlendingFactor2_PAxCA;

 /* Initialize LTDC layer 2 */
 LTDC_LayerInit(LTDC_Layer2, &LTDC_Layer_InitStruct);

 /* LTDC configuration reload */ 
 LTDC_ReloadConfig(LTDC_IMReload);

 /* Enable foreground & background Layers */
 LTDC_LayerCmd(LTDC_Layer1, ENABLE);
 LTDC_LayerCmd(LTDC_Layer2, ENABLE);

 /* LTDC configuration reload */ 
 LTDC_ReloadConfig(LTDC_IMReload);

 /* Set default font */   
// LCD_SetFont(&LCD_DEFAULT_FONT);

 /* dithering activation */
 LTDC_DitherCmd(ENABLE);

LTDC->GCR |= (1<<0);   //LTDC En

GPIOE->ODR |= (1<<10); //DISPLAY ON

Как быть? Фото вставил что из этого вышло.

NHD-4.3-480272MF-ATXI-T-1.pdf

post-144830-0-52185100-1395138873_thumb.jpg

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Вынул подобный экран из gps и подключаю его к stm32f407. Судя по фото, не правильно настроены такты горизонтальной и вертикальной синхронизации

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Судя по фото, не правильно настроены такты горизонтальной и вертикальной синхронизации

Как правильно настраивать hsync, vsync, horizontal and vertical back porch, etc? не правильно понял как настраивать.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Вс

не правильно настроены такты горизонтальной и вертикальной синхронизации

вообщем сделал по даташиту кристала все значения параметров tft. вышел такой код:

LTDC_InitTypeDef	 LTDC_InitStruct;
LTDC_Layer_InitTypeDef LTDC_Layer_InitStruct;
//A, B, C, D, E
RCC->AHB1ENR |= (1<<4)|(1<<3)|(1<<2)|(1<<1)|(1<<0);

GPIOE->MODER |= (1<<20); //DISP
GPIOE->ODR |= (1<<10);

GPIOA->MODER |= (1<<25)| //12
	 (1<<23)| //11
	 (1<<13)| //6
	 (1<<9)| //4
	 (1<<7); //3

GPIOB->MODER |= (1<<23)| //11
	 (1<<21)| //10
	 (1<<19)| //9
	 (1<<17)| //8
	 (1<<3)| //1
	 (1<<1); //0

GPIOC->MODER |= (1<<21)| //10
	 (1<<15)| //7
	 (1<<13); //6

GPIOE->MODER |= (1<<31)| //15
	 (1<<29)| //14
	 (1<<27)| //13
	 (1<<25)| //12
	 (1<<23); //11

GPIOD->MODER |= (1<<21)| //10
	 (1<<7); //3

GPIOA->OSPEEDR |= 0x3C033C0;
GPIOB->OSPEEDR |= 0xFF000F;
GPIOC->OSPEEDR |= 0x30F000;
GPIOE->OSPEEDR |= 0xFFC00000;
GPIOD->OSPEEDR |= 0x3000C0;

GPIOA->AFR[0] |= 0xE0EE000;
GPIOA->AFR[1] |= 0xEE000;
GPIOB->AFR[0] |= 0xEE;
GPIOB->AFR[1] |= 0xEEEE;
GPIOC->AFR[0] |= 0xEE000000;
GPIOC->AFR[1] |= 0xE00;
GPIOE->AFR[1] |= 0xEEEEE000;
GPIOD->AFR[0] |= 0xE000;
GPIOD->AFR[1] |= 0xE00;

//LTDC
RCC->APB2ENR |= (1<<26);

//DMA2D
RCC->AHB1ENR |= (1<<23);
/* Configure PLLSAI prescalers for LCD */
/* Enable Pixel Clock */
/* PLLSAI_VCO Input = HSE_VALUE/PLL_M = 1 Mhz */
/* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAI_N = 192 Mhz */
/* PLLLCDCLK = PLLSAI_VCO Output/PLLSAI_R = 192/4 = 48 Mhz */
/* LTDC clock frequency = PLLLCDCLK / RCC_PLLSAIDivR = 48/8 = 6 Mhz */
RCC_PLLSAIConfig(192, 7, 4);
RCC_LTDCCLKDivConfig(RCC_PLLSAIDivR_Div8);

//RCC->PLLSAICFGR |=
/* Enable PLLSAI Clock */
RCC_PLLSAICmd(ENABLE);
/* Wait for PLLSAI activation */
while(RCC_GetFlagStatus(RCC_FLAG_PLLSAIRDY) == RESET)
{
}

/* LCD Size (Width and Height) */
#define LCD_PIXEL_WIDTH ((uint16_t)480)
#define LCD_PIXEL_HEIGHT ((uint16_t)272)
#define LCD_FRAME_BUFFER	 ((uint32_t)0xD0000000)
#define BUFFER_OFFSET		 ((uint32_t)0x50000)
#define HFP 2 //// HFP 96
#define HSYNC 35 //// HSYNC 22
#define HBP 120 //// HBP 33
///*************************************************************************************************
#define VFP 2 //// VFP 5
#define VSYNC 7 //// VSYNC 1
#define VBP 11 //// VBP 35
///*************************************************************************************************
#define ACTIVE_W (HSYNC + HBP + LCD_PIXEL_WIDTH - 1)
#define ACTIVE_H (VSYNC + VBP+ LCD_PIXEL_HEIGHT - 1)
///*************************************************************************************************
#define TOTAL_WIDTH (HSYNC + HBP + LCD_PIXEL_WIDTH + HFP - 1) //
#define TOTAL_HEIGHT (VSYNC + VBP + LCD_PIXEL_HEIGHT + VFP - 1)
///*************************************************************************************************
/* Timing configuration */
/* Configure horizontal synchronization width */	
LTDC_InitStruct.LTDC_HorizontalSync = HSYNC;
/* Configure vertical synchronization height */
LTDC_InitStruct.LTDC_VerticalSync = VSYNC;
/* Configure accumulated horizontal back porch */
LTDC_InitStruct.LTDC_AccumulatedHBP = HBP+HSYNC-1;
/* Configure accumulated vertical back porch */
LTDC_InitStruct.LTDC_AccumulatedVBP = VSYNC+VBP-1;
/* Configure accumulated active width */
LTDC_InitStruct.LTDC_AccumulatedActiveW = ACTIVE_W;
/* Configure accumulated active height */
LTDC_InitStruct.LTDC_AccumulatedActiveH = ACTIVE_H;
/* Configure total width */
LTDC_InitStruct.LTDC_TotalWidth = TOTAL_WIDTH;
/* Configure total height */
LTDC_InitStruct.LTDC_TotalHeigh = TOTAL_HEIGHT;

LTDC_Init(&LTDC_InitStruct);

/*//LTDC
LTDC->SSCR = 0x90001; //Sync
LTDC->BPCR = 0xE0005; //Back Porch
LTDC->AWCR = 0x11E01E5; //Active Width
LTDC->TWCR = 0x12001E7; //Total Width
*/
/* Windowing configuration */
/* In this case all the active display area is used to display a picture then :
Horizontal start = horizontal synchronization + Horizontal back porch = 30
Horizontal stop = Horizontal start + window width -1 = 30 + 240 -1
Vertical start = vertical synchronization + vertical back porch	 = 4
Vertical stop = Vertical start + window height -1 = 4 + 320 -1	 */	
LTDC_Layer_InitStruct.LTDC_HorizontalStart = 2;//HBP+HSYNC;
LTDC_Layer_InitStruct.LTDC_HorizontalStop = (LCD_PIXEL_WIDTH + HBP+HSYNC - 1);
LTDC_Layer_InitStruct.LTDC_VerticalStart = 25;//VSYNC + VBP;
LTDC_Layer_InitStruct.LTDC_VerticalStop = (LCD_PIXEL_HEIGHT + VSYNC+VBP - 1);

/* Pixel Format configuration*/
LTDC_Layer_InitStruct.LTDC_PixelFormat = LTDC_Pixelformat_RGB565;
/* Alpha constant (255 totally opaque) */
LTDC_Layer_InitStruct.LTDC_ConstantAlpha = 255;
/* Default Color configuration (configure A,R,G,B component values) */		
LTDC_Layer_InitStruct.LTDC_DefaultColorBlue = 255;	
LTDC_Layer_InitStruct.LTDC_DefaultColorGreen = 0;	
LTDC_Layer_InitStruct.LTDC_DefaultColorRed = 0;		
LTDC_Layer_InitStruct.LTDC_DefaultColorAlpha = 0;
/* Configure blending factors */	
LTDC_Layer_InitStruct.LTDC_BlendingFactor_1 = LTDC_BlendingFactor1_CA;
LTDC_Layer_InitStruct.LTDC_BlendingFactor_2 = LTDC_BlendingFactor2_CA;

/* the length of one line of pixels in bytes + 3 then :
Line Lenth = Active high width x number of bytes per pixel + 3
Active high width		 = LCD_PIXEL_WIDTH
number of bytes per pixel = 2 (pixel_format : RGB565)
*/
LTDC_Layer_InitStruct.LTDC_CFBLineLength = ((LCD_PIXEL_WIDTH * 2) + 3);
/* the pitch is the increment from the start of one line of pixels to the
start of the next line in bytes, then :
Pitch = Active high width x number of bytes per pixel */
LTDC_Layer_InitStruct.LTDC_CFBPitch = (LCD_PIXEL_WIDTH * 2);

/* Configure the number of lines */
LTDC_Layer_InitStruct.LTDC_CFBLineNumber = LCD_PIXEL_HEIGHT;

/* Start Address configuration : the LCD Frame buffer is defined on SDRAM */
LTDC_Layer_InitStruct.LTDC_CFBStartAdress = LCD_FRAME_BUFFER;

/* Initialize LTDC layer 1 */
LTDC_LayerInit(LTDC_Layer1, &LTDC_Layer_InitStruct);

/* Configure Layer2 */
/* Start Address configuration : the LCD Frame buffer is defined on SDRAM w/ Offset */	
LTDC_Layer_InitStruct.LTDC_CFBStartAdress = LCD_FRAME_BUFFER + BUFFER_OFFSET;

/* Configure blending factors */	
LTDC_Layer_InitStruct.LTDC_BlendingFactor_1 = LTDC_BlendingFactor1_PAxCA;
LTDC_Layer_InitStruct.LTDC_BlendingFactor_2 = LTDC_BlendingFactor2_PAxCA;

/* Initialize LTDC layer 2 */
LTDC_LayerInit(LTDC_Layer2, &LTDC_Layer_InitStruct);

/* LTDC configuration reload */
LTDC_ReloadConfig(LTDC_IMReload);

/* Enable foreground & background Layers */
LTDC_LayerCmd(LTDC_Layer1, ENABLE);
LTDC_LayerCmd(LTDC_Layer2, ENABLE);

/* LTDC configuration reload */
LTDC_ReloadConfig(LTDC_IMReload);

/* Set default font */
// LCD_SetFont(&LCD_DEFAULT_FONT);

/* dithering activation */
LTDC_DitherCmd(ENABLE);

LTDC->GCR |= (1<<0);

Фото прилагаю.

Немного не понял данное значение:

/* Default Color configuration (configure A,R,G,B component values) */		
LTDC_Layer_InitStruct.LTDC_DefaultColorBlue = 255;	
LTDC_Layer_InitStruct.LTDC_DefaultColorGreen = 0;	
LTDC_Layer_InitStruct.LTDC_DefaultColorRed = 0;	
LTDC_Layer_InitStruct.LTDC_DefaultColorAlpha = 0;

сделал так чтоб фон 2 слоев был синий, насколько я понял. Поправьте?

Синий цвет появился, но странно, почему он сверху и не на весь экран. Недоумеваю....

а ну это при том что

LTDC_Layer_InitStruct.LTDC_HorizontalStart = 2;//HBP+HSYNC;
LTDC_Layer_InitStruct.LTDC_VerticalStart = 25;//VSYNC + VBP;

поправлял "ручным" способом. Не по даташиту, а если делать как по даташиту то всё потемнеет и всё. Не синего цвета ни чего. только темный экран.

post-144830-0-94167300-1395183306_thumb.jpg

Изменено пользователем den2life
Ссылка на комментарий
Поделиться на другие сайты

Вообщем всё вроде б получилось. Всё сдал как нужно, по даташиту.

Теперь помогите вывести какое либо изображение, например для начало квадраты по дисплею с разными цветами. Как это сделать? Что тут никто не разбирался? Я думал тут форум, в котором могут помочь желающим.

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

Если я правильно понял, нужно инициализировать SDRAM и в нее записать три байта (RGB)

Внешнюю оперативку? Мне кажется 256кбайт оперативы должен справится с статическим цветом точки на экране.

А какому именно датащиту, в том что прикреплён не вижу ни временных диаграмм, ни таймингов

если внимательно присмотрется в даташите есть ссылка на другой док пдф. Если точнее на рекомендованный компанией контроллер дисплея. Там в конце того дока имеется таблица со всеми характеристиками дисплея с которым контроллер сможет работать для разрешения экрана 480x272.

Изменено пользователем den2life
Ссылка на комментарий
Поделиться на другие сайты

Без оперативки

А в чём проблема внешнюю подключить, если посмотреть в реальных устройствах, то там так и сделано (в gps, который я разобрал, так и сделано, там даже 2 оперативки внешних стоит)

Изменено пользователем Диман
Ссылка на комментарий
Поделиться на другие сайты

  • 11 месяцев спустя...

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...