|
U8g2是嵌入式设备的单色图形库,一句话简单明了。主要应用于嵌入式设备,当然我们强大的 NUCLEO-U575ZI-Q肯定也是支持的喽,今天就移植U8g2库如下: # 下载安装U8g2库:
. l6 q9 D0 U! J
! ?9 a9 H% Z6 E, T; a 等下载好后,书写主程序如下:! m3 P- q+ D9 y1 R
- #include <Arduino.h>
/ Q! j2 a) n7 c - #include <Wire.h> Z6 C' ^( U+ A8 k
- #include <SPI.h>
& L s8 {+ Q U0 x; D5 t% h - #include <U8g2lib.h>9 l4 Q1 V, f( [# z; g/ a
- & S& j- h/ p; t4 ~; u$ g* T* a
- #define U8X8_HAVE_HW_I2C
& ^; {. \" M ~' Z9 U6 \ - ' n: @2 e6 S5 ~+ _) ~
- #ifdef U8X8_HAVE_HW_I2C. a, L4 b) p3 Y& u7 U- u5 i1 h
- #include <Wire.h>
! B) p) F n7 A - #endif5 U- r7 @. _. R. _. c7 ^6 s
- 4 ?4 ^1 v/ @& n
- U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);
$ j( H2 E. l+ q! e$ H/ z% Z - 4 O* P, m7 e% }2 K
- + x5 h; N. o; l) x
4 @! s2 \% S' y1 `2 X- void setup(void) {
# R# Z. ^2 C8 k% z6 U1 P/ Y! ]1 y
$ O8 M6 H7 @* @% ^8 N8 t/ w, o- /* U8g2 Project: SSD1306 Test Board */
- R- I; n7 N* h) y1 |& U - ' y0 A+ z! b9 L! D' I, F' G
- u8g2.begin();
+ ] S7 a% ~9 i; y, y$ C: P4 g. f - }2 @9 u* F# x# |. @3 }7 W
- 6 C' b1 B+ ?1 x8 U& W1 F
- uint8_t m = 24;1 B3 f8 R+ O4 D r, ?
3 e0 u! f, j! k3 [ x- void loop(void) {
! b% M+ T. F& G! p( z1 \ - char m_str[3];
+ z1 R% V! j$ n - strcpy(m_str, u8x8_u8toa(m, 2)); /* convert m to a string with two digits */" N7 J9 d" ]* S/ z( Z+ ?2 c/ q
- u8g2.firstPage();
0 {% K* B- c+ P, k* N - do {" z |- x i, Q+ a( r) I* @
- u8g2.setFont(u8g2_font_logisoso62_tn);
& L9 i6 r9 z0 \+ `- U1 w9 v% X - u8g2.drawStr(0,63,"9");+ k0 P; \. B+ r5 J- s+ ^
- u8g2.drawStr(33,63,":");% C4 o9 B% J: f" f7 ?4 ~
- u8g2.drawStr(50,63,m_str);
4 I5 W6 i' v" P* Z) D - } while ( u8g2.nextPage() );
& l& @. B' W9 V" s! r+ H1 i- c - delay(1000);
7 {2 ^8 c8 R" o0 @ - m++;% K, q/ A& L8 h$ q7 @
- if ( m == 60 )/ t! w" b9 Y8 f# N5 M
- m = 0;
6 M, \1 y! j& W4 {8 O - }
复制代码
( k* c1 K. L; }; W: H编译后上传,就成功实现了仿时钟界面:
2 M. k7 _2 n3 k' B5 h: E" p7 ^1 K
出处:社区用户:lugl发布 # h2 d) y+ B) w2 Z
- S4 g. v6 L6 }$ n4 k- K |