手头有一块F030的nucleo板卡,休息的时候直接拿来点一下oled,看到社区活动,也来说一句,抛个砖!社区很多大神的资料有时候总有醍醐灌顶之效,学习的好方向。OLED点亮配置也比较简单,就是该字模比较麻烦。下边是部分代码:
0 V4 G( |" l, L配置GPIO全部为输出:! L/ F! s+ ~! U9 z
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4 |GPIO_Pin_5 ;4 E1 F# j8 f% ^9 m7 g/ [
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
. X! E* C/ \8 Y7 j# _4 ] - GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
. D; _, j% Q7 E) l8 F; [1 S5 t - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
) J; z* v8 o1 V! |% a' O) Y - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;' m0 L7 _! v! ]3 X8 E* N
- GPIO_Init(GPIOB, &GPIO_InitStructure);
复制代码 然后就是端口定义改一下:
* {2 F* e" Z% |1 b; C1 r- //-----------------OLED端口定义----------------
8 O, b" {$ L4 z7 d4 ?
' Z6 }. H9 w u% }0 [6 h0 \- #define LCD_SCL_CLR() GPIO_ResetBits(GPIOB,GPIO_Pin_3)
( ^) m4 Q, \7 g - #define LCD_SCL_SET() GPIO_SetBits(GPIOB,GPIO_Pin_3)' \2 X. p1 u Z& O& }" X- y
- / O9 \5 N6 m# H7 R
- #define LCD_SDA_CLR() GPIO_ResetBits(GPIOB,GPIO_Pin_5)
# ^ X# S" ]4 k5 Z5 S - #define LCD_SDA_SET() GPIO_SetBits(GPIOB,GPIO_Pin_5)
9 A8 ^0 e% n8 o: H. ^ - " m5 d: K3 F( O4 b& y t( M
- #define LCD_RST_CLR() GPIO_ResetBits(GPIOB,GPIO_Pin_4)2 t$ t# `1 ^6 @' [
- #define LCD_RST_SET() GPIO_SetBits(GPIOB,GPIO_Pin_4)
! `6 a; p- G/ Q - ; e" z M6 \; q- ^
- #define LCD_DC_CLR() GPIO_ResetBits(GPIOA,GPIO_Pin_10)
) ?/ e. o9 s& N' N1 U/ ?, @ - #define LCD_DC_SET() GPIO_SetBits(GPIOA,GPIO_Pin_10)
复制代码 剩下的就是添加字模了,相应的驱动和软件在网上都可以down到的。在main函数中调用相应的函数
- {' [" _% t' Z: b. h7 F- LCD_Print(0,0,lcdword,TYPE16X16,TYPE8X16);
复制代码 效果如图所示:; J2 _/ G) o: K( \0 t v
" m- f# j f1 L( _4 x
|