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
/* 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 :
- 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
- /
Diff: TextLCD.h
- 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