微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 61平台,如何读取ILI9341的ID?

61平台,如何读取ILI9341的ID?

时间:10-02 整理:3721RD 点击:
有没有在61上面读到ILI9341的接口?

        kal_bool ret = KAL_FALSE;       
        kal_uint16 data1, data2, data3, data4;
        // Read
        //DISABLE_LCD_SERIAL_IF_HW_CS;
       
        LCD_CtrlWrite_ILI9341(0xD9); //spi READ
        LCD_DataWrite_ILI9341(0x13); //0X41
        Delayms(50);         
        LCD_CtrlWrite_ILI9341(0xD9); //spi READ
        LCD_DataWrite_ILI9341(0x13); //0X41
        Delayms(50);         
        LCD_CtrlWrite_ILI9341(0xD9); //spi READ
        LCD_DataWrite_ILI9341(0x13); //0X41
        Delayms(50);
       
        LCD_CtrlWrite_ILI9341(0xd3);  // read id
       
        //GPIO_ModeSetup(47, 0);
        //GPIO_WriteIO(0,47);
        //GPIO_WriteIO(1,47);
        //GPIO_ModeSetup(47, 1);
        ENABLE_LCD_SERIAL0_CS;
        data1 = LCD_DataRead_ILI9341;
        data2 = LCD_DataRead_ILI9341;
        data3 = LCD_DataRead_ILI9341;
        data4 = LCD_DataRead_ILI9341;
        DISABLE_LCD_SERIAL0_CS;
        //ENABLE_LCD_SERIAL_IF_HW_CS;
        kal_prompt_trace(MOD_ENG,"LCD_Check_ID_ILI9341 = %x  %x  %x  %x",data1, data2, data3, data4);
        if(data1 == 0x41)
            return KAL_TRUE;       
        else
                return KAL_FALSE;

#ifdef COMBO_LCM_ID_AUTO_DETECT
kal_bool LCM_ID_check_ILI9341()
{
        kal_uint16 dummy, ILI9341_1, ILI9341_2, ILI9341_3,ILI9341_4;
        kal_uint16 ILI9341_lcd_id=0xFFFF;
       
        Delayms(10);
        SET_LCD_CTRL_RESET_PIN;
        Delayms(20);
        CLEAR_LCD_CTRL_RESET_PIN;
        Delayms(100);
        SET_LCD_CTRL_RESET_PIN;
        Delayms(140);
        LCD_CtrlWrite_ILI9341(0xD9);
        LCD_DataWrite_ILI9341(0x11);
        LCD_CtrlWrite_ILI9341(0xD3);
        Delayms(10);
        ILI9341_1 = LCD_DataRead_ILI9341;
        LCD_CtrlWrite_ILI9341(0xD9);
        LCD_DataWrite_ILI9341(0x12);
        LCD_CtrlWrite_ILI9341(0xD3);
        Delayms(10);
        ILI9341_2 = LCD_DataRead_ILI9341;

        LCD_CtrlWrite_ILI9341(0xD9);
        LCD_DataWrite_ILI9341(0x13);
        LCD_CtrlWrite_ILI9341(0xD3);
        Delayms(10);
        ILI9341_3 = LCD_DataRead_ILI9341;
        //LCD_CtrlWrite_ILI9341(0xD9);
        //LCD_DataWrite_ILI9341(0x14);
        //LCD_CtrlWrite_ILI9341(0xD3);
        //Delayms(10);       
        //ILI9341_4 = LCD_DataRead_ILI9341;
       
        ILI9341_lcd_id=((ILI9341_2 << 8) | (ILI9341_3 & 0xff));
        dbg_print("\r\n ILI9341_1=%x,ILI9341_2=%x\r\n",ILI9341_1,ILI9341_2); //wzd
        dbg_print("\r\n ILI9341_3=%x,ILI9341_4=%x\r\n",ILI9341_3,ILI9341_4); //wzd
       
        //return KAL_TRUE;   //wzd test  !
       
        if (0x9341 ==ILI9341_lcd_id)
                return KAL_TRUE;
        else
                return KAL_FALSE;
}
#endif

OK了,多谢各位了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top