使用stm32工程模板,移植其他人使用0.96寸的Oled代码,在OLED上显示字符,使用的引脚是PB3和PB4,是用了重映射的引脚
这里使用的IC是stm32f103vet6,软件是keil5
百度网盘链接:https://pan.baidu.com/s/1xFrQsbjuPpt2DRcLkoDnjA 提取码:wzya
包含keil5工程和取字模工具
接线方法:
stm32 oled
PB3 SCL
PB4 SDA
GND GND
VCC VCC
我们使用的屏幕是长128 * 宽64的OLED屏,可以将每个点想象成有个像素点
OLED_ShowString(0,0,“ABCDEFG”,8)
第一个参数0意思是从x方向的第1个像素开始,填1就是从第2个像素开始,范围是(0~127)
第二个参数0意思是从y方向的第1个像素开始,填1就是从第9个像素开始(这里y每次+1间隔的是8个像素),范围是(0~7)
第三个参数就是我们要显示的字符,要现在工程的"oled_font.h"中设置函数才能找到需要显示的字符,汉字也是如此
这里第四个参数8就是设置一个字符占了 8 * 8个像素,相当于一个64像素的正方形(只能填写8或者16)
下面贴出oled使用的.c和.h文件,还有在main.c的使用
(另外提一下,oled_bmp.c的第一幅图像bmp1被我换成了一个熊猫人,显示的很模糊我也没有去替换成其他的)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include "oled.h"
2 #include "oled_bmp.h"
3 #include "oled_font.h"
4
5 //字符串
6 u8 string[16];
7
8 //如果是IIC接口
9
10 /**********************************************
11 //IIC Start
12 **********************************************/
13 void IIC_Start(void)
14 {
15 GPIO_SetBits(SCL_GPIO,SCL_GPIO_Pin);
16 GPIO_SetBits(SDA_GPIO,SDA_GPIO_Pin);
17 GPIO_ResetBits(SDA_GPIO,SDA_GPIO_Pin);
18 GPIO_ResetBits(SCL_GPIO,SCL_GPIO_Pin);
19 }
20
21 /**********************************************
22 //IIC Stop
23 **********************************************/
24 void IIC_Stop(void)
25 {
26 GPIO_ResetBits(SCL_GPIO,SCL_GPIO_Pin);
27 GPIO_ResetBits(SDA_GPIO,SDA_GPIO_Pin);
28 GPIO_SetBits(SCL_GPIO,SCL_GPIO_Pin);
29 GPIO_SetBits(SDA_GPIO,SDA_GPIO_Pin);
30 }
31 /**********************************************
32 // IIC Write byte
33 **********************************************/
34 void Write_IIC_Byte(u8 IIC_Byte)
35 {
36 u8 i;
37 for(i=0;i127)
121 {
122 x=0;
123 y=y+2;
124 }
125 if(size == 16)
126 {
127 OLED_Set_Pos(x,y);
128 for(i=0;i |