前言
手上正好有 CH32V307 的板子就耍耍,网上4P的OLED例程也不少 4P OLED 屏驱动例程。在加上一些 STM32 标准库的知识,改改引脚定义,就可以将 OLED 屏连接到板子上进行显示了。当然,我也将会分享我整理好的库文件代码和完整的工程,以便那些需要的朋友们能够快速上手实现 OLED 屏的驱动和显示功能。希望这篇文章能对大家有所帮助。
环境
-  软件:MounRiver Studio 
-  OLED的电源连接就不说了 SCL —> PB11 SDA —> PB10  
流程
-  文字流程 - 在主函数确保IIC所用到的双引脚完成初始化
- 在oled.h中修改IIC引脚的信息(格式如下)
 #define OLED_SCLK_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_11)//SCL
 #define OLED_SCLK_Set() GPIO_SetBits(GPIOB,GPIO_Pin_11)
 #define OLED_SDIN_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_10)//SDA
 #define OLED_SDIN_Set() GPIO_SetBits(GPIOB,GPIO_Pin_10)
- 记得导入OLED.h库,和添加路径
 #include “oled.h”
- 记得初始化OLED
 OLED_Init();
 OLED_Clear();
 
-  代码流程 下面的基于我打包好的OLED屏库,文件的导入流程。 -  在主函数确保IIC所用到的双引脚完成初始化。main.c void OLEDGPIO_Init() { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); }
-  在oled.h中修改IIC引脚的信息(格式如下)。oled.h #define OLED_SCLK_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_11)//SCL #define OLED_SCLK_Set() GPIO_SetBits(GPIOB,GPIO_Pin_11) #define OLED_SDIN_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_10)//SDA #define OLED_SDIN_Set() GPIO_SetBits(GPIOB,GPIO_Pin_10)
-  记得导入OLED.h库,复制到工程文件下和添加路径。 #include "OLED.H"-  添加文件。  
-  添加编译路径 在左上方的工具栏中找到, 文件-->属性,点击打开如下界面。点击文件系统后,在跳出的文件夹选择框中,添加包含的OLED库进来即可。 
 
-  
-  主程序中初始化OLED,多添加一条显示函数,来检验现象。 OLED_Init(); OLED_Clear(); OLED_ShowString(0, 0, "HELLO WORLD!", 16); 
 
-  
现象
上述代码烧录现象

工程
CH32V307VCT6_OLED_4P.zip 是完整的工程文件。OLED_4P.zip 是单独的OLED库。
链接:https://pan.baidu.com/s/1NPBAkmuw3IrYTwbsLPGyBw 提取码:uzlg


















