OLED显示_1
显示:
在选定的坐标下写入需显示的数据或命令;
接口:
并口(6800/8080)、串口(SPI、I2C)
函数类型:
1、基础函数:
void OLED_WR_Byte(u8 dat,u8 cmd),分为串口字节写入和并口字节写入两种,根据条件进行不同编译;
参数1:需要写入的字节;参数2:字节含义(0表示命令,1表示数据)
void OLED_Display_On(void) { OLED_WR_Byte(0x8D,OLED_CMD); //电荷泵设置:包含2个字节,命令字 OLED_WR_Byte(0x14,OLED_CMD); //设置值:00010100,BIT2为1
OLED_WR_Byte(0xAF,OLED_CMD); //diaplay on }
void OLED_Display_Off(void) { OLED_WR_Byte(0X8D,OLED_CMD); //电荷泵设置 OLED_WR_Byte(0X10,OLED_CMD); //00010000 BIT2为0
OLED_WR_Byte(0XAE,OLED_CMD); //DISPLAY OFF
}

1 void OLED_Clear(void) 2 { 3 u8 i,n; 4 for(i=0;i<8;i++) 5 { 6 for(n=0;n<128;n++) 7 { 8 OLED_GRAM[n][i]=0X00; //遍历所有点位复位 9 } 10 } 11 OLED_Refresh_Gram(); //闪存更新 12 }

void OLED_Refresh_Gram(void) { u8 i,n; for(i=0; i<8; i++) { OLED_WR_Byte(0xb0+i,OLED_CMD); //设置页地址(0~7) OLED_WR_Byte(0x00,OLED_CMD); //设置显示位置—列低地址 OLED_WR_Byte(0x10,OLED_CMD); //设置显示位置—列高地址 for(n=0; n<128; n++) { OLED_WR_Byte(OLED_GRAM[n][i],OLED_DATA); //写数据 } } }

//画点,坐标原点在左上角,页号起始点在左下角 //x:0~127 //y:0~63 //t:1 填充 0,清空 void OLED_DrawPoint(u8 x,u8 y,u8 t) { u8 pos,bx,temp=0; if(x>127||y>64) return; //坐标超限,坐标原点在左上角 pos =7-y/8; //每页有8行(y),页号起始在左下角 bx =y%8; //这里是为了要移位,因为沿x轴翻转,自然上下要调换,你可以在坐标系上画个q,沿x轴翻转后得到的d,当前页的行号 temp=1<<(7-bx); //"1"左移(7-bx)个位 if(t) { OLED_GRAM[x][pos]|=temp; // 填充 }else { OLED_GRAM[x][pos]&=~temp; //清空 } }