久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 673|回復: 4
收起左側

0.91寸OLED清屏代碼的問題

[復制鏈接]
ID:709761 發表于 2025-4-1 16:49 | 顯示全部樓層 |閱讀模式
本帖最后由 李冬 于 2025-4-1 16:51 編輯

我想指定某行某列的地方清除顯示,比如我想把48列2行 字體16的地方清除,怎么改
  1. //清屏函數,清完屏,整個屏幕是黑色的!和沒點亮一樣!!!          
  2. void OLED_Clear(void)  
  3. {  
  4.         u8 i,n;                    
  5.         for(i=0;i<8;i++)  
  6.         {  
  7.                 OLED_WR_Byte (0xb0+i,OLED_CMD);    //設置頁地址(0~7)
  8.                 OLED_WR_Byte (0x00,OLED_CMD);      //設置顯示位置—列低地址
  9.                 OLED_WR_Byte (0x10,OLED_CMD);      //設置顯示位置—列高地址   
  10.                 for(n=0;n<128;n++)OLED_WR_Byte(0,OLED_DATA);
  11.         } //更新顯示
  12. }
復制代碼


  1. //在指定位置顯示一個字符,包括部分字符
  2. //x:0~127 列
  3. //y:0~63  行
  4. //mode:0,反白顯示;1,正常顯示                                 
  5. //size:選擇字體 16/12
  6. void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 Char_Size)
  7. {             
  8.         u8 c=0,i=0;       
  9.                 c=chr-' ';//得到偏移后的值                       
  10.                 if(x>Max_Column-1){x=0;y=y+2;}
  11.                 if(Char_Size ==16)
  12.                         {
  13.                         OLED_Set_Pos(x,y);       
  14.                         for(i=0;i<8;i++)
  15.                         OLED_WR_Byte(F8X16[c*16+i],OLED_DATA);
  16.                         OLED_Set_Pos(x,y+1);
  17.                         for(i=0;i<8;i++)
  18.                         OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA);
  19.                         }
  20.                         else {       
  21.                                 OLED_Set_Pos(x,y);
  22.                                 for(i=0;i<6;i++)
  23.                                 OLED_WR_Byte(F6x8[c][i],OLED_DATA);
  24.                                
  25.                         }
  26. }
復制代碼


回復

使用道具 舉報

ID:879809 發表于 2025-4-1 19:29 | 顯示全部樓層
在指定位置寫一個全黑字符就行了,這么簡單的道理都要上網來問?
回復

使用道具 舉報

ID:230500 發表于 2025-4-1 19:57 | 顯示全部樓層
樓上說的沒錯;最簡單的方法就是直接在你要清屏的那一行寫空字符 比如 OLED_ShowString(0,0,"此位置寫空字符 也就是空格,想清多少就空幾個格",16);
回復

使用道具 舉報

ID:584814 發表于 2025-4-1 21:18 | 顯示全部樓層
樓上都是正解,定點擦除就是點點反顯。
回復

使用道具 舉報

ID:320097 發表于 2025-4-1 22:03 | 顯示全部樓層
2c61ef579dbe76c9761601cabb6dcf1f.png 40f38d64dcb3e4914ee58a4ccab06045 (1).png 就在你對應的地址寫0就可以了啊,以SSD1306來說,先寫入頁地址,接著寫入列地址的低位,再寫入列地址的高位,這3條命令就直接定位到你要寫入或者清除的那一列了,寫人0X00這一列就清除原本顯示的東西了,你的問題在于48列2行是哪個位置?它的尋址方式不是橫向的,它是豎向的尋址,PAGE代表頁地址,總共有8頁,從圖2就可以得知每一頁豎著有8個點,剛好1個字節的容量,8個頁面就是64個點,剛好對應12864的豎向的64個點,橫向的SEG代表列地址,128個列地址,對應12864的橫向128個列,你所謂的48列2行,2行是在最上邊的這一頁,所以頁地址就是PAGE0,然后列地址低位就是48%16=0,列地址高位就是48/16=03,這個位置定位的是48列最上面的8個點,直接寫入0X00的話,那么48列的第0行--第7行都會被清除,如果你只想清除第2行這一個點的話,那你得先把這8行的數據讀出來&0XFB(1111 1011)再寫回去,因為MSB字節首位D7在下邊
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99re99| 国产激情视频 | 国产精品国产三级国产aⅴ无密码 | 成人av在线网站 | 国产主播第一页 | 秋霞电影院午夜伦 | 成人免费淫片aa视频免费 | 国产精品久久久久久久久久 | 国内精品久久久久久久影视简单 | 国产999精品久久久久久 | 国产一级特黄视频 | 久草福利 | 欧美日韩淫片 | www.亚洲一区 | 国产日韩精品视频 | 久久久久久美女 | 国产精品一区二 | 亚洲国产成人精品女人久久久 | 狠狠草视频 | 亚洲毛片在线观看 | 日本视频在线播放 | 91国在线 | 日韩欧美二区 | 综合久久久久 | 日本黄色免费片 | 亚洲精品一区二区三区在线 | 日本成人免费网站 | 日韩美香港a一级毛片免费 国产综合av | 中文字幕亚洲一区 | 亚洲www啪成人一区二区 | 美女日批免费视频 | 久久久国产一区二区三区 | 99精品国产在热久久 | 亚洲欧美中文日韩在线v日本 | 国产成人综合av | 成人在线视频观看 | 毛片入口 | 国产午夜视频 | 国产精品久久久久aaaa九色 | 中文字幕91 | 91动漫在线观看 |