stm32的I2C实验 您所在的位置:网站首页 stm32f103oled stm32的I2C实验

stm32的I2C实验

2024-05-09 19:27| 来源: 网络整理| 查看: 265

使用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被我换成了一个熊猫人,显示的很模糊我也没有去替换成其他的)

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


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有