本帖最后由 李冬 于 2025-4-1 16:51 編輯
我想指定某行某列的地方清除顯示,比如我想把48列2行 字體16的地方清除,怎么改
- //清屏函數,清完屏,整個屏幕是黑色的!和沒點亮一樣!!!
- void OLED_Clear(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(0,OLED_DATA);
- } //更新顯示
- }
復制代碼
- //在指定位置顯示一個字符,包括部分字符
- //x:0~127 列
- //y:0~63 行
- //mode:0,反白顯示;1,正常顯示
- //size:選擇字體 16/12
- void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 Char_Size)
- {
- u8 c=0,i=0;
- c=chr-' ';//得到偏移后的值
- if(x>Max_Column-1){x=0;y=y+2;}
- if(Char_Size ==16)
- {
- OLED_Set_Pos(x,y);
- for(i=0;i<8;i++)
- OLED_WR_Byte(F8X16[c*16+i],OLED_DATA);
- OLED_Set_Pos(x,y+1);
- for(i=0;i<8;i++)
- OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA);
- }
- else {
- OLED_Set_Pos(x,y);
- for(i=0;i<6;i++)
- OLED_WR_Byte(F6x8[c][i],OLED_DATA);
-
- }
- }
復制代碼
|