stm32f103c8t6连接四线oled 屏幕
时间: 2023-07-08 18:24:58 浏览: 232
stm32f103c8t6接0.96寸OLED屏, 包含原理图和PCB,不含程序
5星 · 资源好评率100%
连接四线OLED屏幕需要以下步骤:
1. 连接硬件
将OLED屏幕的VCC引脚连接到STM32的3.3V电源,GND引脚连接到STM32的GND。将SCL引脚连接到STM32的PB6引脚,SDA引脚连接到STM32的PB7引脚。
2. 配置GPIO
首先需要开启PB端口的时钟,然后设置PB6和PB7为GPIO模式,输出模式,无上下拉,速度为50MHz。
```
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; //开启PB端口时钟
GPIOB->CRL &= ~(GPIO_CRL_MODE6 | GPIO_CRL_MODE7 | GPIO_CRL_CNF6 | GPIO_CRL_CNF7); //设置PB6和PB7为GPIO输出模式
GPIOB->CRL |= GPIO_CRL_MODE6 | GPIO_CRL_MODE7; //速度50MHz
```
3. 配置I2C
需要开启I2C1的时钟,并设置通信速率为400KHz。
```
RCC->APB1ENR |= RCC_APB1ENR_I2C1EN; //开启I2C1时钟
I2C1->CR2 |= 0x08; //设置时钟频率为8MHz
I2C1->CCR |= 0x80; //设置通信速率为400KHz
I2C1->TRISE |= 0x09; //设置最大上升时间
I2C1->CR1 |= I2C_CR1_PE; //使能I2C1
```
4. 初始化OLED屏幕
向OLED屏幕发送初始化命令,可以使用以下代码:
```
void OLED_Init(void)
{
OLED_Write_Command(0xAE); //关闭OLED屏幕
OLED_Write_Command(0xD5); //设置时钟分频因子
OLED_Write_Command(0x80);
OLED_Write_Command(0xA8); //设置多路复用
OLED_Write_Command(0x3F);
OLED_Write_Command(0xD3); //设置显示偏移
OLED_Write_Command(0x00);
OLED_Write_Command(0x40); //设置起始行
OLED_Write_Command(0x8D); //设置电荷泵
OLED_Write_Command(0x14);
OLED_Write_Command(0x20); //设置内存地址模式
OLED_Write_Command(0x00);
OLED_Write_Command(0xA1); //设置段重定向
OLED_Write_Command(0xC8); //设置COM扫描方向
OLED_Write_Command(0xDA); //设置COM硬件引脚配置
OLED_Write_Command(0x12);
OLED_Write_Command(0x81); //设置对比度
OLED_Write_Command(0xCF);
OLED_Write_Command(0xD9); //设置预充电周期
OLED_Write_Command(0xF1);
OLED_Write_Command(0xDB); //设置VCOMH电压倍率
OLED_Write_Command(0x40);
OLED_Write_Command(0xA4); //关闭全局显示
OLED_Write_Command(0xA6); //设置显示方式
OLED_Write_Command(0xAF); //开启OLED屏幕
}
```
其中,OLED_Write_Command()函数用于向OLED屏幕发送命令,OLED_Write_Data()函数用于向OLED屏幕发送数据。具体实现可以参考OLED屏幕的驱动库。
阅读全文