61平台,如何读取ILI9341的ID?
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了,多谢各位了。
