初级会员

- 积分
- 182
- 金钱
- 182
- 注册时间
- 2018-10-17
- 在线时间
- 54 小时
|
5金钱
战舰开发板OLED IIC通信,不管OLED怎么配置,坐标(0,0)永远都与真实位置(屏幕左上角才是坐标(0,0))相反,永远都是最下面一页是第0页,最右边一列是第0列,很奇怪哪里出错了
void OLED_Init(void)
{
OLED_RES(Bit_SET);
delay_ms(500);
OLED_RES(Bit_RESET);
delay_ms(500);
OLED_RES(Bit_SET);
OLED_Write_Byte(0xAE, OLED_CMD); //关显示
OLED_Write_Byte(0x00, OLED_CMD); //设置低列地址
OLED_Write_Byte(0x10, OLED_CMD); //设置高列地址
OLED_Write_Byte(0x40, OLED_CMD); //设置行显示地址(0-63)
/* 设置对比度 */
OLED_Write_Byte(0x81, OLED_CMD);
OLED_Write_Byte(0xFF, OLED_CMD); //值越大,屏幕越亮
OLED_Write_Byte(0xA6, OLED_CMD); //0xA6表示正常显示(面板上1表示点亮,0表示不亮),0xA7标示逆显示(面板上0表示点亮,1表示不亮)
/* 设置多路复用率(1-64) */
OLED_Write_Byte(0xA8, OLED_CMD);
OLED_Write_Byte(0x3F, OLED_CMD); //(0x01-0x3F)(默认0x3F)
/* 设置显示抵消移位映射内存计数器 */
OLED_Write_Byte(0xD3, OLED_CMD);
OLED_Write_Byte(0x00, OLED_CMD); //(0x01-0x3F)(默认0x3F)
/* 设置显示时钟分频因子/振荡器频率 */
OLED_Write_Byte(0xD5, OLED_CMD);
OLED_Write_Byte(0x80, OLED_CMD); //低4位显示时钟(屏幕的刷新时间)分频因子=[3:0]+1, 高4位振荡器频率
/* 时钟预充电周期 */
OLED_Write_Byte(0xD9, OLED_CMD);
OLED_Write_Byte(0xF1, OLED_CMD); //[3:0] PHASE 1; [7:4] PHASE 2
/* 设置COM硬件应脚配置 */
OLED_Write_Byte(0xDA, OLED_CMD);
OLED_Write_Byte(0x12, OLED_CMD); //[5:4] 默认:01
OLED_Write_Byte(0xDB, OLED_CMD);
OLED_Write_Byte(0x40, OLED_CMD);
/*设置内存寻址方式 */
OLED_Write_Byte(0x20, OLED_CMD);
OLED_Write_Byte(0x02, OLED_CMD); //00:水平寻址方式 01:垂直寻址方式 10:页寻址方式(默认)
/* 电荷泵设置(初始化时必须打开,否则看不见显示) */
OLED_Write_Byte(0x8D, OLED_CMD);
OLED_Write_Byte(0x14, OLED_CMD); //bit2 0:关闭 1:打开
/* 是否全部显示 */
OLED_Write_Byte(0xA4, OLED_CMD); //禁止全部显示
OLED_Write_Byte(0xA6, OLED_CMD); //0xA6:正常显示 0xA7:逆显示
OLED_Write_Byte(0xAF, OLED_CMD); //0xAF:开显示
OLED_Clear();
}
|
-
最佳答案
查看完整内容[请看2#楼]
OLED_Write_Byte(0xA1, OLED_CMD);//0xA1: 左右反置, 0xA0: 正常显示(默认0xA0)
OLED_Write_Byte(0xC8, OLED_CMD);//0xC8: 上下反置, 0xC0: 正常显示(默认0xC0)
|