Например TDA7294

Форум РадиоКот • Просмотр темы - LCD ILI9481 16Bit. Модуль с Алиэкспресс
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 15:17:18

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: LCD ILI9481 16Bit. Модуль с Алиэкспресс
СообщениеДобавлено: Вс сен 03, 2017 20:14:16 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 11
Рейтинг сообщений: 26
Зарегистрирован: Вс июн 26, 2011 20:03:21
Сообщений: 2310
Рейтинг сообщения: 0
Приветствую форумчан!
Пришел с полгода назад такой дисплейчик, только надпись на этикетке ILI9481 (свою упаковку не могу сфоткать - под рукой ее нет):
Изображение
Решил попробовать его запустить, пока появилась капля свободного времени, но он не хочет проходить инициализацию.
Делаю ногодрыгом, для лучшего понимания. Работаю от внутреннего кварца. Камень - STM32F303VCT6 (на DiacoveryF3).
Линия D0-D15 соединена с портом E, пины управления с портом D.
Функции посылки команд и данных:
Спойлер
Код:
oid WrCmd (uint16_t Reg_Value)
{

   if (Data_PINs_State == 1) {ili9481_PINs_Data_Out();}

   ili9481_LCD_CS_DISABLE;
   //ili9481_LCD_RD_DISABLE;
   ili9481_LCD_WR_DISABLE;
   ili9481_LCD_CD_DATA;

   ili9481_LCD_CS_ENABLE;
   ili9481_LCD_CD_COMMAND;
  ili9481_SET_DATA = Reg_Value;   
   ili9481_WR_STROBE;
   
   ili9481_LCD_CS_DISABLE;

   
}


void WrDat (uint16_t Data_for_send)
{
   if (Data_PINs_State == 1) {ili9481_PINs_Data_Out();}
   
   ili9481_LCD_CS_DISABLE;
   //ili9481_LCD_RD_DISABLE;
   ili9481_LCD_WR_DISABLE;
   ili9481_LCD_CD_COMMAND;

   ili9481_LCD_CS_ENABLE;
   ili9481_LCD_CD_DATA;
  ili9481_SET_DATA = Data_for_send;   
   ili9481_WR_STROBE;
   
   ili9481_LCD_CS_DISABLE;
}



void ili9481_Send_Data (uint16_t Reg_Value, uint8_t Data_For_Send)
{

   if (Data_PINs_State == 1) {ili9481_PINs_Data_Out();}

   ili9481_LCD_CS_DISABLE;
   //ili9481_LCD_RD_DISABLE;
   ili9481_LCD_WR_DISABLE;
   ili9481_LCD_CD_DATA;

   ili9481_LCD_CS_ENABLE;
   ili9481_LCD_CD_COMMAND;
  ili9481_SET_DATA = Reg_Value;   
   ili9481_WR_STROBE;
   
   ili9481_LCD_CS_DISABLE;
   ili9481_LCD_CS_ENABLE;
   
   ili9481_LCD_CD_DATA;
   
  ili9481_SET_DATA = Data_For_Send;   
   ili9481_WR_STROBE;

   
   ili9481_LCD_CS_DISABLE;

}




Функции настройки портов:

Спойлер
Код:

void ili9481_PINs_Data_In(void)
{
      GPIOE->MODER = 0x00000000;
      /*;
    GPIOA->CRL &= ~( GPIO_CRL_MODE0 // D0
                                 |GPIO_CRL_MODE1 // D1
                                 |GPIO_CRL_MODE2 // D2
                                 |GPIO_CRL_MODE3 // D3
                                 |GPIO_CRL_MODE4 // D4
                                 |GPIO_CRL_MODE5 // D5
                                 |GPIO_CRL_MODE6 // D6
                                 |GPIO_CRL_MODE7 // D7
                               );   

    GPIOA->CRL &= ~( GPIO_CRL_CNF0 
                                 |GPIO_CRL_CNF1
                                 |GPIO_CRL_CNF2
                                 |GPIO_CRL_CNF3
                                 |GPIO_CRL_CNF4
                                 |GPIO_CRL_CNF5
                                 |GPIO_CRL_CNF6
                                 |GPIO_CRL_CNF7
                               );   
   
    GPIOA->CRL |= ( GPIO_CRL_CNF0_0
                               |GPIO_CRL_CNF1_0
                               |GPIO_CRL_CNF2_0
                               |GPIO_CRL_CNF3_0
                               |GPIO_CRL_CNF4_0
                               |GPIO_CRL_CNF5_0
                               |GPIO_CRL_CNF6_0
                               |GPIO_CRL_CNF7_0
                              ); 
         */
      Data_PINs_State = 1;
      GPIOE->ODR &= 0x0000;                        
     
}



void ili9481_PINs_Command_Init(void)
{
   
    GPIOD->MODER &= ~( //GPIO_MODER_MODER8  // rd
                     GPIO_MODER_MODER1  // wr
                    |GPIO_MODER_MODER0 // rs
                    |GPIO_MODER_MODER2 // cs
                    |GPIO_MODER_MODER3 // rst
                   );

    GPIOD->MODER |=  ( //GPIO_MODER_MODER8_0  // rd
                     GPIO_MODER_MODER1_0  // wr
                    |GPIO_MODER_MODER0_0 // rs
                    |GPIO_MODER_MODER2_0 // cs
                    |GPIO_MODER_MODER3_0 // rst
                   );

}


Дефайны:
Спойлер
Код:

#define LCD_NOOP            0x00   /* No Operation*/
#define LCD_SWRESET             0x01   /* Software Reset */
#define LCD_RDDPM               0x0A   /* Read Display Power Mode */
#define LCD_RDDMADCTL           0x0B   /* Read Display MADCTL */
#define LCD_RDDCOLMOD           0x0C   /* Read Display Pixel Format */
#define LCD_RDDIM               0x0D   /* Read Display Image Format */
#define LCD_RDDSM               0x0E   /* Read Display Signal Mode */
#define LCD_RDDSDR              0x0F   /* Read Display Self-Diagnostic Result */
#define LCD_SPLIN               0x10   /* Enter Sleep Mode */
#define LCD_SLEEP_OUT           0x11   /* Sleep out register */
#define LCD_PTLON               0x12   /* Partial Mode ON */
#define LCD_NORMAL_MODE_ON      0x13   /* Normal Display Mode ON */
#define LCD_DINVOFF             0x20   /* Display Inversion OFF */
#define LCD_DINVON              0x21   /* Display Inversion ON */
#define LCD_GAMMA               0x26   /* Gamma register */
#define LCD_DISPLAY_OFF         0x28   /* Display off register */
#define LCD_DISPLAY_ON          0x29   /* Display on register */
#define LCD_COLUMN_ADDR         0x2A   /* Column address register */
#define LCD_PAGE_ADDR           0x2B   /* Page address register */
#define LCD_GRAM                0x2C   /* GRAM register */
#define LCD_RGBSET              0x2D   /* Color SET */
#define LCD_RAMRD               0x2E   /* Memory Read */
#define LCD_PLTAR               0x30   /* Partial Area */
#define LCD_VSCRDEF             0x33   /* Vertical Scrolling Definition */
#define LCD_TEOFF               0x34   /* Tearing Effect Line OFF */
#define LCD_TEON                0x35   /* Tearing Effect Line ON */
#define LCD_MAC                 0x36   /* Memory Access Control register*/
#define LCD_VSCRSADD            0x37   /* Vertical Scrolling Start Address */
#define LCD_IDMOFF              0x38   /* Idle Mode OFF */
#define LCD_IDMON               0x39   /* Idle Mode ON */
#define LCD_PIXEL_FORMAT        0x3A   /* Pixel Format register */
#define LCD_WRITE_MEM_CONTINUE  0x3C   /* Write Memory Continue */
#define LCD_READ_MEM_CONTINUE   0x3E   /* Read Memory Continue */
#define LCD_SET_TEAR_SCANLINE   0x44   /* Set Tear Scanline */
#define LCD_GET_SCANLINE        0x45   /* Get Scanline */
#define LCD_READ_DDB_START      0xA1   /* Read DDB start */

/* Level 2 Commands */
#define LCD_CMDACCPRTC          0xB0   /* Command Access Protect  */
#define LCD_FRMCTR              0xB3   /* Frame Memory Access and Interface setting  */
#define LCD_DMFMCTR             0xB4   /* Display Mode and Frame Memory Write Mode
setting */
#define LCD_DEVCODERD           0xBF   /* Device code read */
#define LCD_PANEL_DRV_CTL       0xC0   /* Panel Driving Setting */
#define LCD_NORMAL_TIMING_WR    0xC1   /* Display Timing Setting for Normal Mode  */
#define LCD_PARTIAL_TIMING_WR   0xC2   /* Display Timing Setting for Partial Mode  */
#define LCD_IDLE_TIMING_WR      0xC3   /* Display Timing Setting for Idle Mode  */
#define LCD_FR_INV_CTL          0xC5   /* Frame rate and Inversion Control  */
#define LCD_INTERFACE           0xC6   /* Interface Control */
#define LCD_GAMMAWR            0xC8   /* Gamma Setting */
#define LCD_POWER               0xD0   /* POWER CONTROL */
#define LCD_VCOM               0xD1   /* VCOM Control */
#define LCD_NORMAL_PWR_WR       0xD2   /* Power Setting for Normal Mode  */
#define LCD_PARTIAL_PWR_WR      0xD3   /* Power Setting for Partial Mode  */
#define LCD_IDLE_PWR_WR         0xD4   /* Power Setting for Idle Mode  */
#define LCD_NVMEMWR             0xE0   /* NV Memory Write  */
#define LCD_NVMEMCTRL           0xE1   /* NV Memory Control */
#define LCD_NVMEMRD             0xE2   /* NV Memory Status */
#define LCD_NVMEMPRT            0xE3   /* NV Memory Protection  */
#define LCD_EEPROMWR_ENABLE      0xE8   /* EEPROM Write Enable  */
#define LCD_EEPROMWR_DISABLE    0xE9   /* EEPROM Write Disable  */
#define LCD_EEPROMWR         0xEA   /* EEPROM Word Write */
#define LCD_EEPROMRD            0xEB   /* EEPROM Word Read   */
#define LCD_EEPROM_ADR_SET       0xEC   /* EEPROM Address Set */
#define LCD_EEPROM_ERASE        0xED   /* EEPROM Erase */
#define LCD_EEPROM_ERASE_ALL    0xEE   /* EEPROM Erase All  */




//#define ili9481_LCD_RD_ENABLE                   (GPIOD->BSRR |= GPIO_BSRR_BR_8)// Read data from LCD
//#define ili9481_LCD_RD_DISABLE                   (GPIOD->BSRR |= GPIO_BSRR_BS_8) //

#define ili9481_LCD_WR_ENABLE                      (GPIOD->BSRR |= GPIO_BSRR_BR_1) //   Write data to LCD
#define ili9481_LCD_WR_DISABLE                      (GPIOD->BSRR |= GPIO_BSRR_BS_1) //

#define ili9481_LCD_CD_COMMAND                      (GPIOD->BSRR |= GPIO_BSRR_BR_0) // Command/Data selection. May be marked as LCD_RS, D/C, A0 or RS.
#define ili9481_LCD_CD_DATA                            (GPIOD->BSRR |= GPIO_BSRR_BS_0) // Data - Hight. Commands - Low

#define ili9481_LCD_CS_ENABLE                      (GPIOD->BSRR |= GPIO_BSRR_BR_2) // Chip Select.
#define ili9481_LCD_CS_DISABLE                      (GPIOD->BSRR |= GPIO_BSRR_BS_2) // Active - LOW

#define ili9481_LCD_RESET_ENABLE                   (GPIOD->BSRR |= GPIO_BSRR_BR_3) // Reset.
#define ili9481_LCD_RESET_DISABLE                (GPIOD->BSRR |= GPIO_BSRR_BS_3) // Active (LCD reset activation) - LOW


#define ili9481_SET_DATA                              (GPIOE->ODR &= 0x0000); (GPIOE->BSRR)
#define ili9481_READ_DATA                              (GPIOE->IDR & 0x0000)


#define ili9481_WR_STROBE {ili9481_LCD_WR_ENABLE; ili9481_LCD_WR_DISABLE;}



Сама инициализация. В закоментированных блоках отображены все способы, которыми я пытался запустить. ВНИМАНИЕ! много кода:
Спойлер
Код:

void ili9481_Init_Test (void)
{
   
   ili9481_PINs_Command_Init();
   ili9481_PINs_Data_Out();
   
      _ili9481_Delay_ms(10);
ili9481_LCD_RESET_ENABLE;
_ili9481_Delay_ms(10);
ili9481_LCD_RESET_DISABLE;
_ili9481_Delay_ms(10);
// Âûáðàëè äèñïëåé
ili9481_LCD_CS_DISABLE;
   
   
/*   
          //LCD_FSMC_Config();
         _ili9481_Delay_ms(50);
       //GPIO_SetBits(GPIOE, GPIO_Pin_1);
       ili9481_LCD_RESET_DISABLE;
       _ili9481_Delay_ms(20);
       //GPIO_ResetBits(GPIOE, GPIO_Pin_1);
       ili9481_LCD_RESET_ENABLE;
       _ili9481_Delay_ms(20);
       //GPIO_SetBits(GPIOE, GPIO_Pin_1);
       ili9481_LCD_RESET_DISABLE;
       _ili9481_Delay_ms(20);;
*/
   


   
/*
   WrCmd(0x11);
   _ili9481_Delay_ms(20);
   //WrCmd(0xD0);
   ili9481_Send_Data(0xD0, 0x07);
   ili9481_Send_Data(0xD0, 0x42);
   ili9481_Send_Data(0xD0, 0x18);

   //WrCmd(0xD1);
   ili9481_Send_Data(0xD1, 0x00);
   ili9481_Send_Data(0xD1, 0x07);
   ili9481_Send_Data(0xD1, 0x10);

   //WrCmd(0xD2);
   ili9481_Send_Data(0xD2, 0x01);
   ili9481_Send_Data(0xD2, 0x02);

   //WrCmd(0xC0);
   ili9481_Send_Data(0xC0, 0x10);
   ili9481_Send_Data(0xC0, 0x3B);
   ili9481_Send_Data(0xC0, 0x00);
   ili9481_Send_Data(0xC0, 0x02);
   ili9481_Send_Data(0xC0, 0x11);

   //WrCmd(0xC5);
   ili9481_Send_Data(0xC5, 0x03);

   //WrCmd(0xC8);
   ili9481_Send_Data(0xC8, 0x00);
   ili9481_Send_Data(0xC8, 0x32);
   ili9481_Send_Data(0xC8, 0x36);
   ili9481_Send_Data(0xC8, 0x45);
   ili9481_Send_Data(0xC8, 0x06);
   ili9481_Send_Data(0xC8, 0x16);
   ili9481_Send_Data(0xC8, 0x37);
   ili9481_Send_Data(0xC8, 0x75);
   ili9481_Send_Data(0xC8, 0x77);
   ili9481_Send_Data(0xC8, 0x54);
   ili9481_Send_Data(0xC8, 0x0C);
   ili9481_Send_Data(0xC8, 0x00);

   //WrCmd(0x36);
   ili9481_Send_Data(0x36, 0x0A);


   //WrCmd(0x3A);
   ili9481_Send_Data(0x3A, 0x55);

   WrCmd(0x2A);
   ili9481_Send_Data(0x2A, 0x00);
   ili9481_Send_Data(0x2A, 0x00);
   ili9481_Send_Data(0x2A, 0x01);
   ili9481_Send_Data(0x2A, 0x3F);

   //WrCmd(0x2B);
   ili9481_Send_Data(0x2B, 0x00);
   ili9481_Send_Data(0x2B, 0x00);
   ili9481_Send_Data(0x2B, 0x01);
   ili9481_Send_Data(0x2B, 0xE0);
   _ili9481_Delay_ms(120);
   WrCmd(0x29);
   */
   
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

   
   /*
   
     WrCmd(0x11);
    _ili9481_Delay_ms(20);
    WrCmd(0xD0);
    ili9481_Send_Data(0xD0, 0x07);
    ili9481_Send_Data(0xD0, 0x42);
    ili9481_Send_Data(0xD0, 0x18);

    //WrCmd(0xD1, );
    ili9481_Send_Data(0xD1, 0x00);
    ili9481_Send_Data(0xD1, 0x07);
    ili9481_Send_Data(0xD1, 0x10);

    //WrCmd(0xD2, );
    ili9481_Send_Data(0xD2, 0x01);
    ili9481_Send_Data(0xD2, 0x02);

    //WrCmd(0xC0, );
    ili9481_Send_Data(0xC0, 0x10);
    ili9481_Send_Data(0xC0, 0x3B);
    ili9481_Send_Data(0xC0, 0x00);
    ili9481_Send_Data(0xC0, 0x02);
    ili9481_Send_Data(0xC0, 0x11);

    //WrCmd(0xC5, );
    ili9481_Send_Data(0xC5, 0x08);

    //WrCmd(0xC8, );
    ili9481_Send_Data(0xC8, 0x00);
    ili9481_Send_Data(0xC8, 0x32);
    ili9481_Send_Data(0xC8, 0x36);
    ili9481_Send_Data(0xC8, 0x45);
    ili9481_Send_Data(0xC8, 0x06);
    ili9481_Send_Data(0xC8, 0x16);
    ili9481_Send_Data(0xC8, 0x37);
    ili9481_Send_Data(0xC8, 0x75);
    ili9481_Send_Data(0xC8, 0x77);
    ili9481_Send_Data(0xC8, 0x54);
    ili9481_Send_Data(0xC8, 0x0C);
    ili9481_Send_Data(0xC8, 0x00);

    //WrCmd(0x36, );
    ili9481_Send_Data(0x36, 0x0a);

   // WrCmd(0x3A, );
    ili9481_Send_Data(0x3A, 0x55);

    //WrCmd(0x2A, );
    ili9481_Send_Data(0x2A, 0x00);
    ili9481_Send_Data(0x2A, 0x00);
    ili9481_Send_Data(0x2A, 0x01);
    ili9481_Send_Data(0x2A, 0x3F);

    ///WrCmd(0x2B, );
    ili9481_Send_Data(0x2B, 0x00);
    ili9481_Send_Data(0x2B, 0x00);
    ili9481_Send_Data(0x2B, 0x01);
    ili9481_Send_Data(0x2B, 0xDF);

    _ili9481_Delay_ms(120);
    WrCmd(0x29);

    _ili9481_Delay_ms(25);
   */
   
   
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

   
   
   
   /*
   //WrCmd(0xB9,); // Enable extension command
    ili9481_Send_Data(0xB9,0xFF);
    ili9481_Send_Data(0xB9,0x83);
    ili9481_Send_Data(0xB9,0x57);
    _ili9481_Delay_ms(50);
   
    //WrCmd(0xB6,); //Set VCOM voltage
    ili9481_Send_Data(0xB6,0x2C);    //0x52 for HSD 3.0"
   
    WrCmd(0x11); // Sleep off
    _ili9481_Delay_ms(200);
   
    //WrCmd(0x35,); // Tearing effect on
    ili9481_Send_Data(0x35,0x00);    // Added parameter

    //WrCmd(0x3A,); // Interface pixel format
    ili9481_Send_Data(0x3A,0x55);    // 16 bits per pixel

    //WrCmd(0xCC,); // Set panel characteristic
    //ili9481_Send_Data(0x09);    // S960>S1, G1>G480, R-G-B, normally black

    //WrCmd(0xB3); // RGB interface
    //ili9481_Send_Data(0x43);
    //ili9481_Send_Data(0x00);
    //ili9481_Send_Data(0x06);
    //ili9481_Send_Data(0x06);

    //WrCmd(0xB1,); // Power control
    ili9481_Send_Data(0xB1,0x00);
    ili9481_Send_Data(0xB1,0x15);
    ili9481_Send_Data(0xB1,0x0D);
    ili9481_Send_Data(0xB1,0x0D);
    ili9481_Send_Data(0xB1,0x83);
    ili9481_Send_Data(0xB1,0x48);
   
   
    //WrCmd(0xC0,); // Does this do anything?
    ili9481_Send_Data(0xC0,0x24);
    ili9481_Send_Data(0xC0,0x24);
    ili9481_Send_Data(0xC0,0x01);
    ili9481_Send_Data(0xC0,0x3C);
    ili9481_Send_Data(0xC0,0xC8);
    ili9481_Send_Data(0xC0,0x08);
   
    //WrCmd(0xB4,); // Display cycle
    ili9481_Send_Data(0xB4,0x02);
    ili9481_Send_Data(0xB4,0x40);
    ili9481_Send_Data(0xB4,0x00);
    ili9481_Send_Data(0xB4,0x2A);
    ili9481_Send_Data(0xB4,0x2A);
    ili9481_Send_Data(0xB4,0x0D);
    ili9481_Send_Data(0xB4,0x4F);
   
    //WrCmd(0xE0,); // Gamma curve
    ili9481_Send_Data(0xE0,0x00);
    ili9481_Send_Data(0xE0,0x15);
    ili9481_Send_Data(0xE0,0x1D);
    ili9481_Send_Data(0xE0,0x2A);
    ili9481_Send_Data(0xE0,0x31);
    ili9481_Send_Data(0xE0,0x42);
    ili9481_Send_Data(0xE0,0x4C);
    ili9481_Send_Data(0xE0,0x53);
    ili9481_Send_Data(0xE0,0x45);
    ili9481_Send_Data(0xE0,0x40);
    ili9481_Send_Data(0xE0,0x3B);
    ili9481_Send_Data(0xE0,0x32);
    ili9481_Send_Data(0xE0,0x2E);
    ili9481_Send_Data(0xE0,0x28);
   
    ili9481_Send_Data(0xE0,0x24);
    ili9481_Send_Data(0xE0,0x03);
    ili9481_Send_Data(0xE0,0x00);
    ili9481_Send_Data(0xE0,0x15);
    ili9481_Send_Data(0xE0,0x1D);
    ili9481_Send_Data(0xE0,0x2A);
    ili9481_Send_Data(0xE0,0x31);
    ili9481_Send_Data(0xE0,0x42);
    ili9481_Send_Data(0xE0,0x4C);
    ili9481_Send_Data(0xE0,0x53);
    ili9481_Send_Data(0xE0,0x45);
    ili9481_Send_Data(0xE0,0x40);
    ili9481_Send_Data(0xE0,0x3B);
    ili9481_Send_Data(0xE0,0x32);
   
    ili9481_Send_Data(0xE0,0x2E);
    ili9481_Send_Data(0xE0,0x28);
    ili9481_Send_Data(0xE0,0x24);
    ili9481_Send_Data(0xE0,0x03);
    ili9481_Send_Data(0xE0,0x00);
    ili9481_Send_Data(0xE0,0x01);

   // WrCmd(0x36,); // MADCTL Memory access control
    ili9481_Send_Data(0x36,0x48);
    _ili9481_Delay_ms(20);

    WrCmd(0x21); //Display inversion on
    _ili9481_Delay_ms(20);

    WrCmd(0x29); // Display on
   
    _ili9481_Delay_ms(120);
   */
   
   
   ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   
   
   
   
   /*
   WrCmd(0xB9); // Enable extension command
    WrDat(0xFF);
    WrDat(0x83);
    WrDat(0x57);
    _ili9481_Delay_ms(50);
   
    WrCmd(0xB6); //Set VCOM voltage
    WrDat(0x2C);    //0x52 for HSD 3.0"
   
    WrCmd(0x11); // Sleep off
    _ili9481_Delay_ms(200);
   
    WrCmd(0x35); // Tearing effect on
    WrDat(0x00);    // Added parameter

    WrCmd(0x3A); // Interface pixel format
    WrDat(0x55);    // 16 bits per pixel

    //WrCmd(0xCC); // Set panel characteristic
    //WrDat(0x09);    // S960>S1, G1>G480, R-G-B, normally black

    //WrCmd(0xB3); // RGB interface
    //WrDat(0x43);
    //WrDat(0x00);
    //WrDat(0x06);
    //WrDat(0x06);

    WrCmd(0xB1); // Power control
    WrDat(0x00);
    WrDat(0x15);
    WrDat(0x0D);
    WrDat(0x0D);
    WrDat(0x83);
    WrDat(0x48);
   
   
    WrCmd(0xC0); // Does this do anything?
    WrDat(0x24);
    WrDat(0x24);
    WrDat(0x01);
    WrDat(0x3C);
    WrDat(0xC8);
    WrDat(0x08);
   
    WrCmd(0xB4); // Display cycle
    WrDat(0x02);
    WrDat(0x40);
    WrDat(0x00);
    WrDat(0x2A);
    WrDat(0x2A);
    WrDat(0x0D);
    WrDat(0x4F);
   
    WrCmd(0xE0); // Gamma curve
    WrDat(0x00);
    WrDat(0x15);
    WrDat(0x1D);
    WrDat(0x2A);
    WrDat(0x31);
    WrDat(0x42);
    WrDat(0x4C);
    WrDat(0x53);
    WrDat(0x45);
    WrDat(0x40);
    WrDat(0x3B);
    WrDat(0x32);
    WrDat(0x2E);
    WrDat(0x28);
   
    WrDat(0x24);
    WrDat(0x03);
    WrDat(0x00);
    WrDat(0x15);
    WrDat(0x1D);
    WrDat(0x2A);
    WrDat(0x31);
    WrDat(0x42);
    WrDat(0x4C);
    WrDat(0x53);
    WrDat(0x45);
    WrDat(0x40);
    WrDat(0x3B);
    WrDat(0x32);
   
    WrDat(0x2E);
    WrDat(0x28);
    WrDat(0x24);
    WrDat(0x03);
    WrDat(0x00);
    WrDat(0x01);

    WrCmd(0x36); // MADCTL Memory access control
    WrDat(0x48);
    _ili9481_Delay_ms(20);

    WrCmd(0x21); //Display inversion on
    _ili9481_Delay_ms(20);

    WrCmd(0x29); // Display on
   
    _ili9481_Delay_ms(120);
   */
   
   
   
   ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   
/*   
   
   // Configure HX8357-B display
    WrCmd(0x11);
    _ili9481_Delay_ms(20);
    WrCmd(0xD0);
    WrDat(0x07);
    WrDat(0x42);
    WrDat(0x18);

    WrCmd(0xD1);
    WrDat(0x00);
    WrDat(0x07);
    WrDat(0x10);

    WrCmd(0xD2);
    WrDat(0x01);
    WrDat(0x02);

    WrCmd(0xC0);
    WrDat(0x10);
    WrDat(0x3B);
    WrDat(0x00);
    WrDat(0x02);
    WrDat(0x11);

    WrCmd(0xC5);
    WrDat(0x08);

    WrCmd(0xC8);
    WrDat(0x00);
    WrDat(0x32);
    WrDat(0x36);
    WrDat(0x45);
    WrDat(0x06);
    WrDat(0x16);
    WrDat(0x37);
    WrDat(0x75);
    WrDat(0x77);
    WrDat(0x54);
    WrDat(0x0C);
    WrDat(0x00);

    WrCmd(0x36);
    WrDat(0x0a);

    WrCmd(0x3A);
    WrDat(0x55);

    WrCmd(0x2A);
    WrDat(0x00);
    WrDat(0x00);
    WrDat(0x01);
    WrDat(0x3F);

    WrCmd(0x2B);
    WrDat(0x00);
    WrDat(0x00);
    WrDat(0x01);
    WrDat(0xDF);

    _ili9481_Delay_ms(120);
    WrCmd(0x29);

    _ili9481_Delay_ms(25);
// End of HX8357-B display configuration
   */
   
   
   ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   
   
/*   
   // ili9486
   
       WrCmd(0x01);
    WrDat(0x00);
    _ili9481_Delay_ms(50);

    WrCmd(0x28);
    WrDat(0x00);

    WrCmd(0xC0);        // Power Control 1
    WrDat(0x0d);
    WrDat(0x0d);

    WrCmd(0xC1);        // Power Control 2
    WrDat(0x43);
    WrDat(0x00);

    WrCmd(0xC2);        // Power Control 3
    WrDat(0x00);

    WrCmd(0xC5);        // VCOM Control
    WrDat(0x00);
    WrDat(0x48);

    WrCmd(0xB6);        // Display Function Control
    WrDat(0x00);
    WrDat(0x22);           // 0x42 = Rotate display 180 deg.
    WrDat(0x3B);

    WrCmd(0xE0);        // PGAMCTRL (Positive Gamma Control)
    WrDat(0x0f);
    WrDat(0x24);
    WrDat(0x1c);
    WrDat(0x0a);
    WrDat(0x0f);
    WrDat(0x08);
    WrDat(0x43);
    WrDat(0x88);
    WrDat(0x32);
    WrDat(0x0f);
    WrDat(0x10);
    WrDat(0x06);
    WrDat(0x0f);
    WrDat(0x07);
    WrDat(0x00);

    WrCmd(0xE1);        // NGAMCTRL (Negative Gamma Control)
    WrDat(0x0F);
    WrDat(0x38);
    WrDat(0x30);
    WrDat(0x09);
    WrDat(0x0f);
    WrDat(0x0f);
    WrDat(0x4e);
    WrDat(0x77);
    WrDat(0x3c);
    WrDat(0x07);
    WrDat(0x10);
    WrDat(0x05);
    WrDat(0x23);
    WrDat(0x1b);
    WrDat(0x00);

    WrCmd(0x20);        // Display Inversion OFF, 0x21 = ON

    WrCmd(0x36);        // Memory Access Control
    WrDat(0x0A);

    WrCmd(0x3A);        // Interface Pixel Format
    WrDat(0x55);

    WrCmd(0x11);

    _ili9481_Delay_ms(150);

    WrCmd(0x29);
    _ili9481_Delay_ms(25);
   */
   
   
}



Кроме белого света дисплея и быстрого строба подсветки в момент дергания ногой РЕСЕТА никаких признаков жизни.

В данный момент есть два сомнения:
1. Неверно отрабатывается алгоритм передачи команд и данных (в том числе последовательность передачи).
2. На порту E, на котором сидит линия данных D0-D15 посажены светодиоды моей DiscoveryF3. Могут ли они так влиять на работу?

P.S. Пол дня уже бьюсь с проблемой, но пока все безуспешно. Буду благодарен за любую помощь...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: LCD ILI9481 16Bit. Модуль с Алиэкспресс
СообщениеДобавлено: Пн сен 04, 2017 13:25:52 
Сверлит текстолит когтями

Карма: 4
Рейтинг сообщений: 260
Зарегистрирован: Пт авг 21, 2009 03:22:12
Сообщений: 1104
Рейтинг сообщения: 0
А ардуины мега нет под рукой чтобы проверить? У меня модуль точно такой как на снимке нормально с мегой работает.
И причина не в напряжении питания ли? Ардуина от 5 В, а STM от 3,3 В


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: LCD ILI9481 16Bit. Модуль с Алиэкспресс
СообщениеДобавлено: Пн сен 04, 2017 20:00:30 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 11
Рейтинг сообщений: 26
Зарегистрирован: Вс июн 26, 2011 20:03:21
Сообщений: 2310
Рейтинг сообщения: 0
Ардуинки под рукой нет. Так-то я дисплей от 5В запитал. Сама логика должна и от 3В наверное работать.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: LCD ILI9481 16Bit. Модуль с Алиэкспресс
СообщениеДобавлено: Пн сен 04, 2017 20:10:15 
Друг Кота
Аватар пользователя

Карма: 123
Рейтинг сообщений: 7955
Зарегистрирован: Сб сен 13, 2014 16:27:32
Сообщений: 39199
Откуда: СпиртоГонск созвездия Омега
Рейтинг сообщения: 0
ктож знает по идее лучше запитать дисплей тоже от 3в3... 3в6 вдруг поможет помнится похожие проблемы были с диспами от соток когда питание стыковали через 2-3 диода пока не уравняешь не работают

_________________
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: LCD ILI9481 16Bit. Модуль с Алиэкспресс
СообщениеДобавлено: Пн сен 04, 2017 21:15:30 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 11
Рейтинг сообщений: 26
Зарегистрирован: Вс июн 26, 2011 20:03:21
Сообщений: 2310
Рейтинг сообщения: 0
Так-то по параметрам должно работать нормально:
Изображение
А что с алгоритмом последовательности передачи данных и команд?
У меня был другой дисплей на контроллере ILI 320х240. Там Инициализация проходила посылкой данных по конкретному адресу каждый раз, типо как тут:
Код:
...........
   ili9481_Send_Data(0xD0, 0x07);
   ili9481_Send_Data(0xD0, 0x42);
   ili9481_Send_Data(0xD0, 0x18);
...........


А по этому контроллеру все примеры идут с последовательной передачей команд и данных, по типу:
Код:
.........
    WrCmd(0xB1); // Power control
    WrDat(0x00);
    WrDat(0x15);
    WrDat(0x0D);
.........


Вот меня и напрягает, правильно ли я дергаю пинами управления LCD... :dont_know:


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: LCD ILI9481 16Bit. Модуль с Алиэкспресс
СообщениеДобавлено: Ср сен 06, 2017 14:32:32 
Сверлит текстолит когтями

Карма: 4
Рейтинг сообщений: 260
Зарегистрирован: Пт авг 21, 2009 03:22:12
Сообщений: 1104
Рейтинг сообщения: 0
isx писал(а):
... Так-то я дисплей от 5В запитал. Сама логика должна и от 3В наверное работать...

На фотке: линейный стабилизатор 5В -> 3,3 В и куча преобразователей уровня (ПУ) для согласования сигналов.
Получается полная муйня: питание высокой стороны ПУ - 5 В, следовательно, сигналы от МК должны быть 5 вольтовыми.
Запитаешь LCD от 3,3 В - ХЗ какой там стоит стабилизатор и что он будет выдавать на выход вместо положенных 3,3 В.

Варианты:
1. Поэкспериментировать с питанием LCD - посмотреть на тип стабилизатора, и если повезло и стоит low drop снизить питание LCD до минимального значения в надежде, что ПУ будут нормально работать.
2. Перейти на питание LCD от 3,3 В - подать питание в обход стабилизатора, при этом уровни напряжений высокой и низкой стороны ПУ будут одинаковы. Если ПУ будет нормально работать - проблема решена. Если нет - подавать сигналы от МК напрямую на индикатор, минуя ПУ: самый муторный вариант - куча мелкого монтажа.

По любому нужно начинать с того, что осциллографом посмотреть на сигналы на выходе ПУ, правильно ли они передают сигнал от МК.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: LCD ILI9481 16Bit. Модуль с Алиэкспресс
СообщениеДобавлено: Чт сен 07, 2017 12:40:35 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 11
Рейтинг сообщений: 26
Зарегистрирован: Вс июн 26, 2011 20:03:21
Сообщений: 2310
Рейтинг сообщения: 0
Попробовал запитать от 3В (3.3 под рукой сейчас нет) - результат тотже. Похоже надо ардуиноМегу заказать, чтоб разобраться с этим чудом китайской мысли.
Есть подозрения, что пины нормально работают и с 5В и с 3В, так как при исзменении сигнала на выводе RST с единицы на ноль, в обоих случаях дисплей еле заметно моргает. Скорее всего происходит сброс.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: LCD ILI9481 16Bit. Модуль с Алиэкспресс
СообщениеДобавлено: Вт сен 19, 2017 19:25:38 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 11
Рейтинг сообщений: 26
Зарегистрирован: Вс июн 26, 2011 20:03:21
Сообщений: 2310
Рейтинг сообщения: 0
Разобрался с дисплеем. С 3В линиями данных и управления работает отлично. Код инициализации:
Инициализация:
Спойлер
Код:
void ili9481_Init (void)
{
    ili9481_PINs_Command_Init();
    ili9481_PINs_Data_Out();
    ili9481_HW_Reset();


    ili9481_Send_Command(0x01);   
    ili9481_Send_Command(0x11);
    _ili9481_Delay_ms(50);

    ili9481_Send_Command(LCD_NORMAL_MODE_ON);   //0x13

    ili9481_Send_Command(0xD0);    //(0xD0);
    ili9481_Send_Data(0x07);
    ili9481_Send_Data(0x43);    //0x43  0x42
    ili9481_Send_Data(0x15);    //0x15  0x18

    ili9481_Send_Command(LCD_VCOM);    //(0xD1);
    ili9481_Send_Data(0x00);
    ili9481_Send_Data(0x07);//07
    ili9481_Send_Data(0x10);

    ili9481_Send_Command(LCD_NORMAL_PWR_WR);    //(0xD2);
    ili9481_Send_Data(0x01);
    ili9481_Send_Data(0x02);

    ili9481_Send_Command(LCD_PANEL_DRV_CTL);    //(0xC0);
    ili9481_Send_Data(0x10); //0x10
    ili9481_Send_Data(0x3B);
    ili9481_Send_Data(0x00);
    ili9481_Send_Data(0x02);
    ili9481_Send_Data(0x11);

    ili9481_Send_Command(LCD_FR_INV_CTL);    //(0xC5);
    ili9481_Send_Data(0x01);

    ili9481_Send_Command(LCD_GAMMAWR);    //(0xC8);
    ili9481_Send_Data(0x00);
    ili9481_Send_Data(0x32);
    ili9481_Send_Data(0x36);
    ili9481_Send_Data(0x45);
    ili9481_Send_Data(0x06);
    ili9481_Send_Data(0x16);
    ili9481_Send_Data(0x37);
    ili9481_Send_Data(0x75);
    ili9481_Send_Data(0x77);
    ili9481_Send_Data(0x54);
    ili9481_Send_Data(0x0C);
    ili9481_Send_Data(0x00);

    ili9481_Send_Command(0x36);    //(0x2B);   
    ili9481_Send_Data(0x2B);   

    ili9481_Send_Command(LCD_PIXEL_FORMAT);    //(0x3A);
    ili9481_Send_Data(0x55);

    ili9481_Send_Command(LCD_COLUMN_ADDR);    //(0x2A);
    ili9481_Send_Data(0x00);
    ili9481_Send_Data(0x00);
    ili9481_Send_Data((uint8_t)(ili9481_WIDTH >> 8));
    ili9481_Send_Data((uint8_t)(ili9481_WIDTH - 1));

    ili9481_Send_Command(LCD_PAGE_ADDR);    //(0x2B);
    ili9481_Send_Data(0x00);
    ili9481_Send_Data(0x00);
    ili9481_Send_Data((uint8_t)(ili9481_HEIGHT >> 8));
    ili9481_Send_Data((uint8_t)(ili9481_HEIGHT - 1));
    _ili9481_Delay_ms(120);
    ili9481_Send_Command(LCD_DISPLAY_ON);    //(0x29);
}



Дефайны:

Спойлер
Код:
#define LCD_NOOP            0x00   /* No Operation*/
#define LCD_SWRESET             0x01   /* Software Reset */
#define LCD_RDDPM               0x0A   /* Read Display Power Mode */
#define LCD_RDDMADCTL           0x0B   /* Read Display MADCTL */
#define LCD_RDDCOLMOD           0x0C   /* Read Display Pixel Format */
#define LCD_RDDIM               0x0D   /* Read Display Image Format */
#define LCD_RDDSM               0x0E   /* Read Display Signal Mode */
#define LCD_RDDSDR              0x0F   /* Read Display Self-Diagnostic Result */
#define LCD_SPLIN               0x10   /* Enter Sleep Mode */
#define LCD_SLEEP_OUT           0x11   /* Sleep out register */
#define LCD_PTLON               0x12   /* Partial Mode ON */
#define LCD_NORMAL_MODE_ON      0x13   /* Normal Display Mode ON */
#define LCD_DINVOFF             0x20   /* Display Inversion OFF */
#define LCD_DINVON              0x21   /* Display Inversion ON */
#define LCD_GAMMA               0x26   /* Gamma register */
#define LCD_DISPLAY_OFF         0x28   /* Display off register */
#define LCD_DISPLAY_ON          0x29   /* Display on register */
#define LCD_COLUMN_ADDR         0x2A   /* Column address register */
#define LCD_PAGE_ADDR           0x2B   /* Page address register */
#define LCD_GRAM                0x2C   /* GRAM register */
#define LCD_RGBSET              0x2D   /* Color SET */
#define LCD_RAMRD               0x2E   /* Memory Read */
#define LCD_PLTAR               0x30   /* Partial Area */
#define LCD_VSCRDEF             0x33   /* Vertical Scrolling Definition */
#define LCD_TEOFF               0x34   /* Tearing Effect Line OFF */
#define LCD_TEON                0x35   /* Tearing Effect Line ON */
#define LCD_MAC                 0x36   /* Memory Access Control register*/
#define LCD_VSCRSADD            0x37   /* Vertical Scrolling Start Address */
#define LCD_IDMOFF              0x38   /* Idle Mode OFF */
#define LCD_IDMON               0x39   /* Idle Mode ON */
#define LCD_PIXEL_FORMAT        0x3A   /* Pixel Format register */
#define LCD_WRITE_MEM_CONTINUE  0x3C   /* Write Memory Continue */
#define LCD_READ_MEM_CONTINUE   0x3E   /* Read Memory Continue */
#define LCD_SET_TEAR_SCANLINE   0x44   /* Set Tear Scanline */
#define LCD_GET_SCANLINE        0x45   /* Get Scanline */
#define LCD_READ_DDB_START      0xA1   /* Read DDB start */

/* Level 2 Commands */
#define LCD_CMDACCPRTC          0xB0   /* Command Access Protect  */
#define LCD_FRMCTR              0xB3   /* Frame Memory Access and Interface setting  */
#define LCD_DMFMCTR             0xB4   /* Display Mode and Frame Memory Write Mode
setting */
#define LCD_DEVCODERD           0xBF   /* Device code read */
#define LCD_PANEL_DRV_CTL       0xC0   /* Panel Driving Setting */
#define LCD_NORMAL_TIMING_WR    0xC1   /* Display Timing Setting for Normal Mode  */
#define LCD_PARTIAL_TIMING_WR   0xC2   /* Display Timing Setting for Partial Mode  */
#define LCD_IDLE_TIMING_WR      0xC3   /* Display Timing Setting for Idle Mode  */
#define LCD_FR_INV_CTL          0xC5   /* Frame rate and Inversion Control  */
#define LCD_INTERFACE           0xC6   /* Interface Control */
#define LCD_GAMMAWR            0xC8   /* Gamma Setting */
#define LCD_POWER               0xD0   /* POWER CONTROL */
#define LCD_VCOM               0xD1   /* VCOM Control */
#define LCD_NORMAL_PWR_WR       0xD2   /* Power Setting for Normal Mode  */
#define LCD_PARTIAL_PWR_WR      0xD3   /* Power Setting for Partial Mode  */
#define LCD_IDLE_PWR_WR         0xD4   /* Power Setting for Idle Mode  */
#define LCD_NVMEMWR             0xE0   /* NV Memory Write  */
#define LCD_NVMEMCTRL           0xE1   /* NV Memory Control */
#define LCD_NVMEMRD             0xE2   /* NV Memory Status */
#define LCD_NVMEMPRT            0xE3   /* NV Memory Protection  */
#define LCD_EEPROMWR_ENABLE      0xE8   /* EEPROM Write Enable  */
#define LCD_EEPROMWR_DISABLE    0xE9   /* EEPROM Write Disable  */
#define LCD_EEPROMWR         0xEA   /* EEPROM Word Write */
#define LCD_EEPROMRD            0xEB   /* EEPROM Word Read   */
#define LCD_EEPROM_ADR_SET       0xEC   /* EEPROM Address Set */
#define LCD_EEPROM_ERASE        0xED   /* EEPROM Erase */
#define LCD_EEPROM_ERASE_ALL    0xEE   /* EEPROM Erase All  */

#define ili9481_DATA_PORT                              GPIOC
#define ili9481_CONTROL_PORT                        GPIOD

#define ili9481_LCD_WR_ENABLE                      (ili9481_CONTROL_PORT->BSRR |= GPIO_BSRR_BR_1) //   Write data to LCD
#define ili9481_LCD_WR_DISABLE                      (ili9481_CONTROL_PORT->BSRR |= GPIO_BSRR_BS_1) //

#define ili9481_LCD_CD_COMMAND                      (ili9481_CONTROL_PORT->BSRR |= GPIO_BSRR_BR_0) // Command/Data selection. May be marked as LCD_RS, D/C, A0 or RS.
#define ili9481_LCD_CD_DATA                            (ili9481_CONTROL_PORT->BSRR |= GPIO_BSRR_BS_0) // Data - Hight. Commands - Low

#define ili9481_LCD_CS_ENABLE                      (ili9481_CONTROL_PORT->BSRR |= GPIO_BSRR_BR_2) // Chip Select.
#define ili9481_LCD_CS_DISABLE                      (ili9481_CONTROL_PORT->BSRR |= GPIO_BSRR_BS_2) // Active - LOW

#define ili9481_LCD_RESET_ENABLE                   (ili9481_CONTROL_PORT->BSRR |= GPIO_BSRR_BR_3) // Reset.
#define ili9481_LCD_RESET_DISABLE                (ili9481_CONTROL_PORT->BSRR |= GPIO_BSRR_BS_3) // Active (LCD reset activation) - LOW

#define ili9481_SET_DATA                              (ili9481_DATA_PORT->ODR)
#define ili9481_READ_DATA                              (ili9481_DATA_PORT->IDR & 0x0000)

#define ili9481_WR_STROBE {ili9481_LCD_WR_ENABLE; ili9481_LCD_WR_DISABLE;}


Прием/отправка
Спойлер
Код:
void ili9481_Send_Command (uint16_t Reg_Value)
{

   //if (Data_PINs_State == 1) {ili9481_PINs_Data_Out();}

   ili9481_LCD_CS_DISABLE;
   //ili9481_LCD_RD_DISABLE;
   ili9481_LCD_WR_DISABLE;
   ili9481_LCD_CD_DATA;

   ili9481_LCD_CS_ENABLE;
   ili9481_LCD_CD_COMMAND;
  ili9481_SET_DATA = Reg_Value;   
   ili9481_WR_STROBE;
   
   ili9481_LCD_CS_DISABLE;
}



void ili9481_Send_Data (uint16_t Data_for_send)
{
   //if (Data_PINs_State == 1) {ili9481_PINs_Data_Out();}
   
   ili9481_LCD_CS_DISABLE;
   //ili9481_LCD_RD_DISABLE;
   ili9481_LCD_WR_DISABLE;
   ili9481_LCD_CD_COMMAND;

   ili9481_LCD_CS_ENABLE;
   ili9481_LCD_CD_DATA;
  ili9481_SET_DATA = Data_for_send;   
   ili9481_WR_STROBE;
   
   ili9481_LCD_CS_DISABLE;
}


Код 100% рабочий. Часть откуда-то успешно с3,14зжена, остальное писал сам, так что, если есть вопросы - спрашиваем не стесняемся :) .

Дальше хочу подключить к FSMC, но информация для CMSIS скудная. Если у кого есть примеры с его использованием - поделитесь пожалуйста.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: mr.Woland и гости: 29


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y