Daniel Scarnatto
/
STM32F103C8T6_TextLCD
Simple analog input and LCD 4 bit Example reading a LM35. Tested in BluePill board
Diff: main.cpp
- Revision:
- 0:271d74b09d64
- Child:
- 1:e10c603cf0ae
diff -r 000000000000 -r 271d74b09d64 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Jan 15 11:07:07 2017 +0000 @@ -0,0 +1,65 @@ +/* Hello World! for the TextLCD Enhanced Library*/ + +#include "stm32f103c8t6.h" +#include "mbed.h" +#include "TextLCD.h" + + +int main() +{ + confSysClock(); // configure system clock (72MHz HSE clock, 48MHz USB clock) + + // Host PC Communication channels + Serial pc(PA_2, PA_3); // tx, rx + + // LCD instantiation + TextLCD lcd(PA_8, PA_9, PA_10, PA_11, PA_12, PA_15, TextLCD::LCD16x2); // 4-bit bus: RS, E, D4, D5, D6, D7 + Timer t; + + + pc.printf("TextLCD Enhanced Test. Columns=%d, Rows=%d\n\r", lcd.columns(), lcd.rows()); + + for (int row = 0; row < lcd.rows(); row++) { + int col = 0; + + pc.printf("MemAddr(Col=%d, Row=%d)=0x%02X\n\r", col, row, lcd.getAddress(col, row)); + + lcd.putc('0' + row); + + for (col=1; col < lcd.columns() - 1; col++) { + lcd.putc('*'); + } + + pc.printf("MemAddr(Col=%d, Row=%d)=0x%02X\n\r", col, row, lcd.getAddress(col, row)); + lcd.putc('+'); + } + +// Fill screen again and time it + t.start(); + + for (int row=0; row<lcd.rows(); row++) { + int col=0; + + lcd.putc('0' + row); + + for (col=1; col<lcd.columns()-1; col++) { + lcd.putc('*'); + } + + lcd.putc('+'); + } + t.stop(); + pc.printf("All my hard work took %f sec\r\n", t.read()); + +// Show cursor as blinking character + lcd.setCursor(TextLCD::CurOff_BlkOn); + +// Set and show user defined characters. A maximum of 8 UDCs are supported by the HD44780. +// They are defined by a 5x7 bitpattern. + lcd.setUDC(0, (char *) udc_0); // Show |> + lcd.putc(0); + lcd.setUDC(1, (char *) udc_1); // Show <| + lcd.putc(1); + + pc.printf("Bye now\r\n"); +}