我想用stm32f103c8t6来使用7针oled屏幕,请写出初始化代码
时间: 2023-09-03 21:10:41 浏览: 46
好的,针对您的问题,以下是使用stm32f103c8t6来初始化7针oled屏幕的代码示例:
```
#include "stm32f10x.h"
#define OLED_ADD 0x78
#define OLED_CMD 0x00
#define OLED_DATA 0x40
void OLED_Send_CMD(uint8_t rCmd)
{
uint8_t cmd[2] = {OLED_CMD, rCmd};
I2C_Write(I2C1, OLED_ADD, cmd, 2);
}
void OLED_Send_Data(uint8_t rData)
{
uint8_t data[2] = {OLED_DATA, rData};
I2C_Write(I2C1, OLED_ADD, data, 2);
}
void OLED_Init(void)
{
I2C_Enable(I2C1);
OLED_Send_CMD(0xAE); // display off
OLED_Send_CMD(0xD5); // display divide ratio/osc. freq. mode
OLED_Send_CMD(0x80); // recommended operating frequency
OLED_Send_CMD(0xA8); // multiplex ratio
OLED_Send_CMD(0x3F); // 1/64 duty
OLED_Send_CMD(0xD3); // display offset
OLED_Send_CMD(0x00); // no offset
OLED_Send_CMD(0x40); // start line
OLED_Send_CMD(0x8D); //charge pump setting
OLED_Send_CMD(0x14);
OLED_Send_CMD(0x20); //Set Memory Addressing Mode
OLED_Send_CMD(0x00); //Horizontal Addressing Mode
OLED_Send_CMD(0xA0); //set segment remap
OLED_Send_CMD(0xC0); //Set COM Output Scan Direction
OLED_Send_CMD(0xDA); //set comp pins hardware configuration
OLED_Send_CMD(0x12);
OLED_Send_CMD(0x81); //set contrast control
OLED_Send_CMD(0xCF);
OLED_Send_CMD(0xD9); //set pre-charge period
OLED_Send_CMD(0xF1);
OLED_Send_CMD(0xDB); //set vcomh
OLED_Send_CMD(0x40);
OLED_Send_CMD(0xAF); // display on
}
```
这是通过I2C协议控制7针oled屏幕的代码,其中,我们需要初始化I2C,并且具体根据您所使用的I2C接口进行调整。另外,本代码只是初始化,如果需要显示内容,还需要编写具体内容显示的代码。