C.Dupaty 03-2018 test on NUCLEO STM32-F411RE LCD 2x16, I2C interface Chinese model, adress I2C=0x4E (search on AliExpress for IIC/I2C 1602 Module) Important ! configure in TextLCD_Config.h : Valid only one of the lines : #define DFROBOT 0 // chinese OK #define YWROBOT 0 // chinese 0K #define SYDZ 1 // chinese OK Font is the same as http://www.farnell.com/datasheets/2362518.pdf

Fork of TextLCD by Wim Huiskamp

/* Hello World! for the TextLCD Enhanced Library C.Dupaty 03-2018 test on NUCLEO STM32-F411RE LCD 2x16, I2C interface Chinese model, adress I2C=0x4E (search on AliExpress for IIC/I2C 1602 Module) Important ! configure in TextLCD_Config.h : Valid only one of the lines :

  1. define DFROBOT 0 chinese OK
  2. define YWROBOT 0 chinese 0K
  3. define SYDZ 1 chinese OK Font is the same as http://www.farnell.com/datasheets/2362518.pdf
  • /
Revision:
10:dd9b3a696acd
Parent:
9:0893d986e717
Child:
11:9ec02df863a1
--- a/TextLCD.h	Thu Jan 31 19:46:00 2013 +0000
+++ b/TextLCD.h	Mon Feb 04 21:48:24 2013 +0000
@@ -28,7 +28,7 @@
 
 /** A TextLCD interface for driving 4-bit HD44780-based LCDs
  *
- * Currently supports 8x1, 8x2, 16x2, 16x4, 20x2, 20x4, 24x2 and 40x2 panels
+ * Currently supports 8x1, 8x2, 16x2, 16x4, 20x2, 20x4, 24x2, 24x4 and 40x2 panels
  *
  * @code
  * #include "mbed.h"
@@ -42,6 +42,7 @@
  * @endcode
  */
 
+ 
 class TextLCD : public Stream {
 public:
 
@@ -55,9 +56,17 @@
         LCD20x2,    /**< 20x2 LCD panel */
         LCD20x4,    /**< 20x4 LCD panel */
         LCD24x2,    /**< 24x2 LCD panel */        
+        LCD24x4,    /**< 24x4 LCD panel, special mode KS0078 */                
         LCD40x2     /**< 40x2 LCD panel */                
     };
 
+    /** LCD Cursor control */
+    enum LCDCursor {
+        CurOn,
+        CurOff
+    };
+
+
     /** Create a TextLCD interface
      *
      * @param rs    Instruction/data control line
@@ -89,17 +98,46 @@
      */
     void locate(int column, int row);
 
+
+    /** Return the memoryaddress of screen column and row location
+     *
+     * @param column  The horizontal position from the left, indexed from 0
+     * @param row     The vertical position from the top, indexed from 0
+     * @param return  The memoryaddress of screen column and row location
+     */
     int  getAddress(int column, int row);    
+    
+    
+    /** Set the memoryaddress of screen column and row location
+     *
+     * @param column  The horizontal position from the left, indexed from 0
+     * @param row     The vertical position from the top, indexed from 0
+     */
     void setAddress(int column, int row);        
 
+    /** Set the Cursormode
+     *
+     * @param show    The Cursor mode (CurOn or CurOff)
+     * @param return  The current Cursor mode     
+     */
+    LCDCursor cursor(LCDCursor show);     
+
     /** Clear the screen and locate to 0,0 */
     void cls();
 
+    /** Return the number of rows
+     *
+     * @param return  The number of rows
+     */
     int rows();
-    int columns();
+    
+    /** Return the number of columns
+     *
+     * @param return  The number of columns
+     */  
+    int columns();  
 
 protected:
-
     // Stream implementation functions
     virtual int _putc(int value);
     virtual int _getc();
@@ -116,6 +154,7 @@
 
     int _column;
     int _row;
+    LCDCursor _cursor;    
 };
 
 #endif