#include "lcdDrv.h" #include "osi_api.h" #include "osi_log.h" #include "hal_gouda.h" #include "drv_lcd.h" #include "gui.h" #include "log.h" #define LCD_DRV_ID_ST7735 0x7c89f0 static void _lcdDelayMs(int ms_delay) { osiDelayUS(ms_delay * 1000); } const unsigned char Cmd_xC8[3]={0xff,0x93,0x42}; const unsigned char Cmd_xB6[2]={0x0A,0Xe0}; const unsigned char Cmd_x36[1]={0x00};//d0 const unsigned char Cmd_x3A[1]={0x06}; const unsigned char Cmd_xC0[1]={0x2c}; const unsigned char Cmd_xC1[1]={0x02}; const unsigned char Cmd_xC2[1]={0x01}; const unsigned char Cmd_xC3[1]={0x1a}; const unsigned char Cmd_xC4[1]={0x20}; const unsigned char Cmd_xC5[1]={0xca}; const unsigned char Cmd_xC6[1]={0x0f}; const unsigned char Cmd_xD0[2]={0xA4,0xa1}; const unsigned char Cmd_xB1[2]={0x00,0x1b}; const unsigned char Cmd_xB2[5]={0x0c,0x0c,0x00,0x33,0x33}; const unsigned char Cmd_xB4[1]={0x02}; const unsigned char Cmd_xB7[1]={0x35}; const unsigned char Cmd_xBB[1]={0x38}; const unsigned char Cmd_xE0[15]={0x00,0x01,0x04,0x00,0x11,0x08,0x35,0x79,0x45,0x07,0x0D,0x09,0x16,0x17,0x0F}; const unsigned char Cmd_xE1[15]={0x00,0x28,0x29,0x02,0x0F,0x06,0x3F,0x25,0x55,0x06,0x15,0x0F,0x38,0x38,0x0F}; static void cmdDataSet(unsigned char cmd, unsigned char *data, int datalen){ int i; LCD_CtrlWrite_ST7735(cmd); for(i=0;i=0) return; if(++errCnt%20) MSG_WARN(1,"lcd bus errcnt:%d",errCnt); } void LCD_CtrlWrite_ST7735(unsigned char cmd){ int i=100; do{ if(HAL_ERR_NO==halGoudaWriteCmd(cmd)) break; }while(--i>0); showBusErrInfo(i); } void LCD_DataWrite_ST7735(unsigned char data){ int i=100; do{ if(HAL_ERR_NO==halGoudaWriteData(data)) break; }while(--i>0); showBusErrInfo(i); } void LCD_DataRead_ST7735(unsigned char *reg, unsigned char *data, unsigned int readLen){ halGoudaReadData(reg, data, readLen); } void lcdBackList(char onoff){ bool write_value = onoff; //onoff=1; //LSAPI_Device_Write(LcdBlGpio, (void *)&write_value, 1); if(onoff)LSAPI_PmuSwitchPower(OSI_MAKE_TAG('C', 'A', 'M', 'A'), onoff, true); else LSAPI_PmuSwitchPower(OSI_MAKE_TAG('C', 'A', 'M', 'A'), onoff, false); }