OLED显示屏应用(STM32)

一、接线

OLED的四针脚对应接法如下图

GND——GND

3.3V——3.3V

SCL——PB8

SDA——PB9

二、OLED.c代码介绍

#include "stm32f10x.h"
#include "OLED_Font.h"

/*引脚配置*/
//OLED时钟线
//GPIOB8接时钟线接口
//定义一个函数,函数的参数为x,当调用宏时,会执行GPIO_WriteBit()函数,将GPIOB8设置为X
#define OLED_W_SCL(x)		GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(x))
//OLED数据线
//GPIOB9接数据线结构
#define OLED_W_SDA(x)		GPIO_WriteBit(GPIOB, GPIO_Pin_9, (BitAction)(x))

/*引脚初始化,这里根据引脚连接可以适当进行修改*/
void OLED_I2C_Init(void)
{
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//初始化时钟
	
	GPIO_InitTypeDef GPIO_InitStructure;
 	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;//设置为开漏输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
	
 	GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOB8
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
 	GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOB9
	
	//设置为高电平
	OLED_W_SCL(1);
	OLED_W_SDA(1);
}

/**
  * @brief  I2C开始
  * @param  无
  * @retval 无
  */
void OLED_I2C_Start(void)
{
	OLED_W_SDA(1);
	OLED_W_SCL(1);
	OLED_W_SDA(0);
	OLED_W_SCL(0);
}

/**
  * @brief  I2C停止
  * @param  无
  * @retval 无
  */
void OLED_I2C_Stop(void)
{
	OLED_W_SDA(0);
	OLED_W_SCL(1);//时钟口为1
	OLED_W_SDA(1);//数据口为1
}

/**
  * @brief  I2C发送一个字节
  * @param  Byte 要发送的一个字节
  * @retval 无
  */
void OLED_I2C_SendByte(uint8_t Byte)
{
	//一个字节是8位,逐位发送,从高位到低位
	uint8_t i;
	for (i = 0; i < 8; i++)
	{
		//将Byte与一个右移了i位的掩码,即第i位为1,其他位为0的,进行按位与操作
		//位与,全1为1,有0为0
		//0x80的二进制码是1000 0000
		//0x80>>i,表示的是第8-i位为1
		//Byte&(0x80>>i)用于判断第8-i为是否为1,即输出该位的电平
		//只有两种可能,要不就是全为0,要不就是有值
		OLED_W_SD
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值