/* * Set back light state */ public static void LCD_SetBacklightState(Byte state) { if (state != 0) { ControlGPIO.VGI_SetPins(ControlGPIO.VGI_USBGPIO, 0, ControlPin.LCD_BL_PIN); } else { ControlGPIO.VGI_ResetPins(ControlGPIO.VGI_USBGPIO, 0, ControlPin.LCD_BL_PIN); } }
/* * Write 1 byte data to 5510 */ public static void LCD_WriteByte(Byte Data, Byte Command) { if (Command != 0) { ControlGPIO.VGI_SetPins(ControlGPIO.VGI_USBGPIO, 0, ControlPin.LCD_DC_PIN); } else { ControlGPIO.VGI_ResetPins(ControlGPIO.VGI_USBGPIO, 0, ControlPin.LCD_DC_PIN); } Byte[] temp = new Byte[1]; temp[0] = Data; ControlSPI.VSI_WriteBytes(ControlSPI.VSI_USBSPI, 0, 0, temp, 1); }
//public static extern void LCD_SetBacklightState(Byte state); public static Int32 ConfigAdapter() { Int32 ret; ControlSPI.VSI_INIT_CONFIG pSPI_Config = new ControlSPI.VSI_INIT_CONFIG(); // Scan device connected ret = ControlGPIO.VGI_ScanDevice(); if (ret <= 0) { Console.WriteLine("No device connect!\n"); return(ret); } // Open device ret = ControlSPI.VSI_OpenDevice(ControlSPI.VSI_USBSPI, 0, 0); if (ret != ControlSPI.ERROR.SUCCESS) { Console.WriteLine("Open device error!\n"); return(ret); } // Initialize device pSPI_Config.ControlMode = 1; pSPI_Config.MasterMode = 1; pSPI_Config.ClockSpeed = 4500000; pSPI_Config.CPHA = 0; pSPI_Config.CPOL = 0; pSPI_Config.LSBFirst = 0; pSPI_Config.TranBits = 8; pSPI_Config.SelPolarity = 0; ret = ControlSPI.VSI_InitSPI(ControlSPI.VSI_USBSPI, 0, ref pSPI_Config); if (ret != ControlSPI.ERROR.SUCCESS) { Console.WriteLine("Initialize device error!\n"); return(ret); } //Config RST,DC,BL pin ret = ControlGPIO.VGI_SetOutput(ControlGPIO.VGI_USBGPIO, 0, ControlPin.LCD_BL_PIN | ControlPin.LCD_DC_PIN | ControlPin.LCD_RST_PIN); if (ret != ControlSPI.ERROR.SUCCESS) { Console.WriteLine("Config GPIO error!\n"); return(ret); } return(0); }
static void Main(string[] args) { int ret; // Scan connected device ret = ControlGPIO.VGI_ScanDevice(1); if (ret <= 0) { Console.WriteLine("No device connect!"); return; } // Open device ret = ControlGPIO.VGI_OpenDevice(ControlGPIO.VGI_USBGPIO, 0, 0); if (ret != ControlGPIO.ERROR.SUCCESS) { Console.WriteLine("Open device error!"); return; } // Set GPIO_7 and GPIO_8 to output ret = ControlGPIO.VGI_SetOutput(ControlGPIO.VGI_USBGPIO, 0, ControlGPIO.GPIO_MASK.VGI_GPIO_PIN7 | ControlGPIO.GPIO_MASK.VGI_GPIO_PIN8); if (ret != ControlGPIO.ERROR.SUCCESS) { Console.WriteLine("Set pin output error!"); return; } // Set GPIO_7 and GPIO_8 to high level ret = ControlGPIO.VGI_SetOutput(ControlGPIO.VGI_USBGPIO, 0, ControlGPIO.GPIO_MASK.VGI_GPIO_PIN7 | ControlGPIO.GPIO_MASK.VGI_GPIO_PIN8); if (ret != ControlGPIO.ERROR.SUCCESS) { Console.WriteLine("Set pin high error!"); return; } // Set GPIO_7 and GPIO_8 to low level ret = ControlGPIO.VGI_ResetPins(ControlGPIO.VGI_USBGPIO, 0, ControlGPIO.GPIO_MASK.VGI_GPIO_PIN7 | ControlGPIO.GPIO_MASK.VGI_GPIO_PIN8); if (ret != ControlGPIO.ERROR.SUCCESS) { Console.WriteLine("Set pin low error!"); return; } // Set GPIO_4 and GPIO_5 to input ret = ControlGPIO.VGI_SetInput(ControlGPIO.VGI_USBGPIO, 0, ControlGPIO.GPIO_MASK.VGI_GPIO_PIN4 | ControlGPIO.GPIO_MASK.VGI_GPIO_PIN5); if (ret != ControlGPIO.ERROR.SUCCESS) { Console.WriteLine("Set pin input error!"); return; } // Get GPIO_4 and GPIO_5 value UInt16 pin_value = 0; ret = ControlGPIO.VGI_ReadDatas(ControlGPIO.VGI_USBGPIO, 0, ControlGPIO.GPIO_MASK.VGI_GPIO_PIN4 | ControlGPIO.GPIO_MASK.VGI_GPIO_PIN5, ref pin_value); if (ret != ControlGPIO.ERROR.SUCCESS) { Console.WriteLine("Get pin data error!"); return; } else { if ((pin_value & ControlGPIO.GPIO_MASK.VGI_GPIO_PIN4) != 0) { Console.WriteLine("GPIO_4 is high-level!"); } else { Console.WriteLine("GPIO_4 is low-level!"); } if ((pin_value & ControlGPIO.GPIO_MASK.VGI_GPIO_PIN5) != 0) { Console.WriteLine("GPIO_5 is high-level!"); } else { Console.WriteLine("GPIO_5 is low-level!"); } } // Set GPIO_4 and GPIO_5 to OD(Bi-directional, need pull-up resistor) ret = ControlGPIO.VGI_SetOpenDrain(ControlGPIO.VGI_USBGPIO, 0, ControlGPIO.GPIO_MASK.VGI_GPIO_PIN4 | ControlGPIO.GPIO_MASK.VGI_GPIO_PIN5); if (ret != ControlGPIO.ERROR.SUCCESS) { Console.WriteLine("Set pin input error!"); return; } // Set GPIO_4 and GPIO_5 to high level ret = ControlGPIO.VGI_SetOutput(ControlGPIO.VGI_USBGPIO, 0, ControlGPIO.GPIO_MASK.VGI_GPIO_PIN4 | ControlGPIO.GPIO_MASK.VGI_GPIO_PIN5); if (ret != ControlGPIO.ERROR.SUCCESS) { Console.WriteLine("Set pin high error!"); return; } // Set GPIO_4 and GPIO_5 to low level ret = ControlGPIO.VGI_ResetPins(ControlGPIO.VGI_USBGPIO, 0, ControlGPIO.GPIO_MASK.VGI_GPIO_PIN4 | ControlGPIO.GPIO_MASK.VGI_GPIO_PIN5); if (ret != ControlGPIO.ERROR.SUCCESS) { Console.WriteLine("Set pin high error!"); return; } // Get GPIO_4 and GPIO_5 value ret = ControlGPIO.VGI_ReadDatas(ControlGPIO.VGI_USBGPIO, 0, ControlGPIO.GPIO_MASK.VGI_GPIO_PIN4 | ControlGPIO.GPIO_MASK.VGI_GPIO_PIN5, ref pin_value); if (ret != ControlGPIO.ERROR.SUCCESS) { Console.WriteLine("Get pin data error!"); return; } else { if ((pin_value & ControlGPIO.GPIO_MASK.VGI_GPIO_PIN4) != 0) { Console.WriteLine("GPIO_4 is high-level!"); } else { Console.WriteLine("GPIO_4 is low-level!"); } if ((pin_value & ControlGPIO.GPIO_MASK.VGI_GPIO_PIN5) != 0) { Console.WriteLine("GPIO_5 is high-level!"); } else { Console.WriteLine("GPIO_5 is low-level!"); } } // Close device ret = ControlGPIO.VGI_CloseDevice(ControlGPIO.VGI_USBGPIO, 0); if (ret != ControlGPIO.ERROR.SUCCESS) { Console.WriteLine("Close device error!"); return; } }
/* * Reset LCD */ public static void LCD_Reset() { ControlGPIO.VGI_ResetPins(ControlGPIO.VGI_USBGPIO, 0, ControlPin.LCD_RST_PIN); Thread.Sleep(10); ControlGPIO.VGI_SetPins(ControlGPIO.VGI_USBGPIO, 0, ControlPin.LCD_RST_PIN); }