手头有一块F030的nucleo板卡,休息的时候直接拿来点一下oled,看到社区活动,也来说一句,抛个砖!社区很多大神的资料有时候总有醍醐灌顶之效,学习的好方向。OLED点亮配置也比较简单,就是该字模比较麻烦。下边是部分代码:$ @7 l& Q. c$ f; ~) ~' J# I+ M3 I
配置GPIO全部为输出:
0 W! g8 p2 o7 J5 f! j0 _$ b- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4 |GPIO_Pin_5 ;+ k6 ]0 {6 N7 j! Y
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
. N; z& v7 t7 s( ^ - GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
, K/ D; z+ I* O0 o3 A+ f" ?+ } - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;7 D# E: q0 D; S1 N7 D9 Z
- GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
^2 E: `4 B1 @ o - GPIO_Init(GPIOB, &GPIO_InitStructure);
复制代码 然后就是端口定义改一下:$ t) G" W. J4 O+ w2 X8 g
- //-----------------OLED端口定义---------------- 0 r/ l t8 k) [& u" E- [
- ( P( x( A8 I; ?1 _9 l
- #define LCD_SCL_CLR() GPIO_ResetBits(GPIOB,GPIO_Pin_3)4 X' N9 x2 ]9 u: y
- #define LCD_SCL_SET() GPIO_SetBits(GPIOB,GPIO_Pin_3)( h1 a. O3 Z" n" h" n/ ~# v
% e5 `5 K+ f& p% J- #define LCD_SDA_CLR() GPIO_ResetBits(GPIOB,GPIO_Pin_5)
% E- Z$ b; x9 `9 S: R' P - #define LCD_SDA_SET() GPIO_SetBits(GPIOB,GPIO_Pin_5)2 @* E" _, F1 @ S4 M
- . y5 b( d+ c {: A3 |; e: e
- #define LCD_RST_CLR() GPIO_ResetBits(GPIOB,GPIO_Pin_4)
$ H" J, s# K* g) ^# G' X6 j; ` - #define LCD_RST_SET() GPIO_SetBits(GPIOB,GPIO_Pin_4)' u$ `; R, T. L- G7 W+ d
$ g+ r. i9 ^$ v) r ~ y- #define LCD_DC_CLR() GPIO_ResetBits(GPIOA,GPIO_Pin_10)
+ \$ g4 k% q# b! h1 Z4 B5 P - #define LCD_DC_SET() GPIO_SetBits(GPIOA,GPIO_Pin_10)
复制代码 剩下的就是添加字模了,相应的驱动和软件在网上都可以down到的。在main函数中调用相应的函数
; I1 V, \0 c% b" t# H6 O- LCD_Print(0,0,lcdword,TYPE16X16,TYPE8X16);
复制代码 效果如图所示:
1 G' x5 S$ O4 {3 f; v0 z; x- Y- q$ t5 T4 z
|