手头有一块F030的nucleo板卡,休息的时候直接拿来点一下oled,看到社区活动,也来说一句,抛个砖!社区很多大神的资料有时候总有醍醐灌顶之效,学习的好方向。OLED点亮配置也比较简单,就是该字模比较麻烦。下边是部分代码:
7 E' p/ \4 ^' d: R7 O' n, g9 \/ c配置GPIO全部为输出:* E( ]$ Q5 L' [2 b* \# I2 z+ B# p
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4 |GPIO_Pin_5 ;6 ]! f* ?6 O/ ]% `) ~) H4 M2 p/ a+ q2 i
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;- N, ^1 J/ k( H) ^8 `
- GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
5 }' B& F8 Y I) U7 x. a# x! q - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
* S0 ~- y+ R* w' H: x2 {- l% u1 C; e# X/ p - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
) e: x. }3 T* C) `( K - GPIO_Init(GPIOB, &GPIO_InitStructure);
复制代码 然后就是端口定义改一下:5 |) `% R) `! J- j
- //-----------------OLED端口定义----------------
9 e; T/ X |) g2 V - : v1 I) k2 i; Q9 ~
- #define LCD_SCL_CLR() GPIO_ResetBits(GPIOB,GPIO_Pin_3)# E a. `, }1 d; s J
- #define LCD_SCL_SET() GPIO_SetBits(GPIOB,GPIO_Pin_3)
# |1 w$ D$ D3 h5 x c m - 0 f/ u9 R3 {, [. i& a6 D) ]! X
- #define LCD_SDA_CLR() GPIO_ResetBits(GPIOB,GPIO_Pin_5)
# z1 y4 \. @7 | - #define LCD_SDA_SET() GPIO_SetBits(GPIOB,GPIO_Pin_5)
5 V% ^! i0 x0 [7 `$ b% Y, P/ c( f4 L
, o Q0 f5 k" }3 d( S0 `! K8 J- #define LCD_RST_CLR() GPIO_ResetBits(GPIOB,GPIO_Pin_4)
& s' J+ y; p2 j+ ^& j# O# r1 p - #define LCD_RST_SET() GPIO_SetBits(GPIOB,GPIO_Pin_4)( s7 ?0 U( h; g; U* X2 A+ ?
- {* V* x% _( s# [1 i
- #define LCD_DC_CLR() GPIO_ResetBits(GPIOA,GPIO_Pin_10)
) R7 K& j# G! U - #define LCD_DC_SET() GPIO_SetBits(GPIOA,GPIO_Pin_10)
复制代码 剩下的就是添加字模了,相应的驱动和软件在网上都可以down到的。在main函数中调用相应的函数- B. u7 |! D& s" h' G8 a; `/ `
- LCD_Print(0,0,lcdword,TYPE16X16,TYPE8X16);
复制代码 效果如图所示:: \7 v# V1 m; E2 g. X4 U
; c' Q0 `: y9 v! c; t |