Class to drive the LCD Glass display (GH08172T device) present on DISCO_L476VG board.
Dependents: DISCO_L476VG_GlassLCD DISCO_L476VG_UART DISCO_L476VG_leds_buttons_carter DISCO_L476VG_ ... more
LCD_DISCO_L476VG.h
- Committer:
- bcostm
- Date:
- 2015-08-28
- Revision:
- 0:6ac2ed34f595
File content as of revision 0:6ac2ed34f595:
/* Copyright (c) 2010-2011 mbed.org, MIT License * * Permission is hereby granted, free of charge, to any person obtaining a copy of this software * and associated documentation files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all copies or * substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __LCD_DISCO_L476VG_H #define __LCD_DISCO_L476VG_H #ifdef TARGET_DISCO_L476VG #include "mbed.h" #include "stm32l476g_discovery_glass_lcd.h" /* Class to drive the LCD Glass display (GH08172T device) present on DISCO_L476VG board. Usage: #include "mbed.h" #include "LCD_DISCO_L476VG.h" LCD_DISCO_L476VG lcd; int main() { uint32_t temp = 0; uint8_t stemp[7] = {0}; lcd.Clear(); lcd.DisplayString((uint8_t *)"Hello"); while(1) { sprintf((char *)stemp, "val=%d", temp); lcd.DisplayString(stemp); lcd.BarLevelConfig((uint8_t)temp); temp++; if (temp > 4) temp = 0; wait(1); } } */ class LCD_DISCO_L476VG { public: //! Constructor LCD_DISCO_L476VG(); //! Destructor ~LCD_DISCO_L476VG(); /** * @brief Initialize the LCD GLASS relative GPIO port IOs and LCD peripheral. * @retval None */ void Init(void); /** * @brief DeInitialize the LCD GLASS relative GPIO port IOs and LCD peripheral. * @retval None */ void DeInit(void); /** * @brief Configure the LCD Blink mode and Blink frequency. * @param BlinkMode: specifies the LCD blink mode. * This parameter can be one of the following values: * @arg LCD_BLINKMODE_OFF: Blink disabled * @arg LCD_BLINKMODE_SEG0_COM0: Blink enabled on SEG[0], COM[0] (1 pixel) * @arg LCD_BLINKMODE_SEG0_ALLCOM: Blink enabled on SEG[0], all COM (up to 8 * pixels according to the programmed duty) * @arg LCD_BLINKMODE_ALLSEG_ALLCOM: Blink enabled on all SEG and all COM * (all pixels) * @param BlinkFrequency: specifies the LCD blink frequency. * @arg LCD_BLINKFREQUENCY_DIV8: The Blink frequency = fLcd/8 * @arg LCD_BLINKFREQUENCY_DIV16: The Blink frequency = fLcd/16 * @arg LCD_BLINKFREQUENCY_DIV32: The Blink frequency = fLcd/32 * @arg LCD_BLINKFREQUENCY_DIV64: The Blink frequency = fLcd/64 * @arg LCD_BLINKFREQUENCY_DIV128: The Blink frequency = fLcd/128 * @arg LCD_BLINKFREQUENCY_DIV256: The Blink frequency = fLcd/256 * @arg LCD_BLINKFREQUENCY_DIV512: The Blink frequency = fLcd/512 * @arg LCD_BLINKFREQUENCY_DIV1024: The Blink frequency = fLcd/1024 * @retval None */ void BlinkConfig(uint32_t BlinkMode, uint32_t BlinkFrequency); /** * @brief Configure the LCD contrast. * @param Contrast: specifies the LCD contrast value. * This parameter can be one of the following values: * @arg LCD_CONTRASTLEVEL_0: Maximum Voltage = 2.60V * @arg LCD_CONTRASTLEVEL_1: Maximum Voltage = 2.73V * @arg LCD_CONTRASTLEVEL_2: Maximum Voltage = 2.86V * @arg LCD_CONTRASTLEVEL_3: Maximum Voltage = 2.99V * @arg LCD_CONTRASTLEVEL_4: Maximum Voltage = 3.12V * @arg LCD_CONTRASTLEVEL_5: Maximum Voltage = 3.25V * @arg LCD_CONTRASTLEVEL_6: Maximum Voltage = 3.38V * @arg LCD_CONTRASTLEVEL_7: Maximum Voltage = 3.51V * @retval None */ void Contrast(uint32_t Contrast); /** * @brief Write a character in the LCD RAM buffer. * @param ch: The character to display. * @param Point: A point to add in front of char. * This parameter can be one of the following values: * @arg POINT_OFF: No point to add in front of char. * @arg POINT_ON: Add a point in front of char. * @param Colon: Flag indicating if a colon character has to be added in front * of displayed character. * This parameter can be one of the following values: * @arg DOUBLEPOINT_OFF: No colon to add in back of char. * @arg DOUBLEPOINT_ON: Add an colon in back of char. * @param Position: Position in the LCD of the character to write. * This parameter can be any value in range [1:6]. * @retval None * @note Required preconditions: The LCD should be cleared before to start the * write operation. */ void DisplayChar(uint8_t* ch, Point_Typedef Point, DoublePoint_Typedef Column, DigitPosition_Typedef Position); /** * @brief Write a character string in the LCD RAM buffer. * @param ptr: Pointer to string to display on the LCD Glass. * @retval None */ void DisplayString(uint8_t* ptr); /** * @brief Write a character string with decimal point in the LCD RAM buffer. * @param ptr: Pointer to string to display on the LCD Glass. * @retval None * @note Required preconditions: Char is ASCCI value "ORed" with decimal point or Colon flag */ void DisplayStrDeci(uint16_t* ptr); /** * @brief Display a string in scrolling mode * @param ptr: Pointer to string to display on the LCD Glass. * @param nScroll: Specifies how many time the message will be scrolled * @param ScrollSpeed : Specifies the speed of the scroll, low value gives * higher speed * @retval None * @note Required preconditions: The LCD should be cleared before to start the * write operation. */ void ScrollSentence(uint8_t* ptr, uint16_t nScroll, uint16_t ScrollSpeed); /** * @brief Display one or several bar in LCD frame buffer. * @param BarId: specifies the LCD GLASS Bar to display * This parameter can be one of the following values: * @arg BAR0: LCD GLASS Bar 0 * @arg BAR0: LCD GLASS Bar 1 * @arg BAR0: LCD GLASS Bar 2 * @arg BAR0: LCD GLASS Bar 3 * @retval None */ void DisplayBar(uint32_t BarId); /** * @brief Clear one or several bar in LCD frame buffer. * @param BarId: specifies the LCD GLASS Bar to display * This parameter can be combination of one of the following values: * @arg LCD_BAR_0: LCD GLASS Bar 0 * @arg LCD_BAR_1: LCD GLASS Bar 1 * @arg LCD_BAR_2: LCD GLASS Bar 2 * @arg LCD_BAR_3: LCD GLASS Bar 3 * @retval None */ void ClearBar(uint32_t BarId); /** * @brief Configure the bar level on LCD by writing bar value in LCD frame buffer. * @param BarLevel: specifies the LCD GLASS Battery Level. * This parameter can be one of the following values: * @arg BATTERYLEVEL_OFF: LCD GLASS Battery Empty * @arg BATTERYLEVEL_1_4: LCD GLASS Battery 1/4 Full * @arg BATTERYLEVEL_1_2: LCD GLASS Battery 1/2 Full * @arg BATTERYLEVEL_3_4: LCD GLASS Battery 3/4 Full * @arg BATTERYLEVEL_FULL: LCD GLASS Battery Full * @retval None */ void BarLevelConfig(uint8_t BarLevel); /** * @brief Clear the whole LCD RAM buffer. * @retval None */ void Clear(void); private: }; #else #error "This class must be used with DISCO_L476VG board only." #endif // TARGET_DISCO_L476VG #endif