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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4404|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

關(guān)于SSD1306驅(qū)動(dòng)的OLED低四位地址指定的困惑

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
新手最近剛剛開始學(xué)OLED。照著資料給的源碼看的時(shí)候在OLED屏幕定位的函數(shù)時(shí)遇上了理解問題。如下所示函數(shù),OLED_WR_byte是向SSD1306寫入一個(gè)字節(jié)的指令函數(shù)

void OLED_set_pos(unsigned char x, unsigned char y)
{
        OLED_WR_byte(0xb0+y,OLED_CMD);
        OLED_WR_byte(((x&0xf0)>>4)|0x10,OLED_CMD);
        OLED_WR_byte((x&0x0f)|0x01,OLED_CMD);
}   


看了一下SSD1306的數(shù)據(jù)手冊(cè),前兩句不難理解,y指定頁數(shù),x高四位或上0x10表示指定SSD1306起始列的高四位。
那么請(qǐng)問在取這個(gè)低四位的時(shí)候,為何要或上0x01呢?
我看SSD1306的手冊(cè)上也只對(duì)指令高四位要求是0000,并無其他要求。是為了顯示上的方便嗎?
還請(qǐng)大佬不吝解答。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:686782 發(fā)表于 2020-5-6 11:43 | 只看該作者
頂一頂,求大佬解惑
回復(fù)

使用道具 舉報(bào)

板凳
ID:282850 發(fā)表于 2020-5-6 15:54 | 只看該作者

手上的程序與你這個(gè)完全一樣,4線SPI,由于搞了兩個(gè)都用IIC,沒關(guān)注這問題。你看的很仔細(xì)。
按上圖,確實(shí)不可理解第3句|1,如按圖4行21命令,或1可有道理,即頁址模式,但第2行又有問題。
分析可能的原因:
1、原作者寫錯(cuò)了。
2、估計(jì)SEG接線中0號(hào)是空的,列址從1~128,不是0~127.

解決方法:實(shí)測寫0、1、2列0xff看看
把|1刪除看看。
上述兩個(gè)試驗(yàn)完就知道原來是否正確。

jjq.png (147.75 KB, 下載次數(shù): 43)

jjq.png
回復(fù)

使用道具 舉報(bào)

地板
ID:282850 發(fā)表于 2020-5-6 16:06 | 只看該作者
        for(m=0;m<8;m++)
        {
                Write_IIC_Command(0xb0+m);                //page0-page1
                Write_IIC_Command(0x00);                //low column start address
                Write_IIC_Command(0x10);                //high column start address
                for(n=0;n<132;n++)
                        {
                                Write_IIC_Data(fill_Data);
                        }
IIC的程序中,確實(shí)是高4位0x10,低4位0x00就OK的。還是測試一下不要|1看看。
回復(fù)

使用道具 舉報(bào)

5#
ID:686782 發(fā)表于 2020-5-7 09:29 | 只看該作者
f556 發(fā)表于 2020-5-6 15:54
手上的程序與你這個(gè)完全一樣,4線SPI,由于搞了兩個(gè)都用IIC,沒關(guān)注這問題。你看的很仔細(xì)。
按上圖,確 ...

多謝指教!
這就去試試
回復(fù)

使用道具 舉報(bào)

6#
ID:686782 發(fā)表于 2020-5-7 12:42 | 只看該作者
寫了兩版不同的定位函數(shù)(主體函數(shù)去掉0x01,另一個(gè)保留0x01作對(duì)比),分別讓其在0xb0和0xb1頁點(diǎn)亮第一列。
效果如圖所示,和代碼理解的差不多,或上0x01的版本保留了第一列不被點(diǎn)亮,而去掉0x01的版本也能正常工作,而且就這樣看或上0x01的版本列有效范圍應(yīng)該只有1-127,不知是否有其它用意。
現(xiàn)在基本覺得是作者參考了手冊(cè)圖的指令21然后誤寫了。實(shí)際運(yùn)行應(yīng)該是只需要保證高四位為0,就能正常定位列地址低四位吧。
個(gè)人理解,若有錯(cuò)誤還請(qǐng)指出

R%Z07AW)}4S$O53DOJ(H3`Y.png (341.79 KB, 下載次數(shù): 46)

R%Z07AW)}4S$O53DOJ(H3`Y.png
回復(fù)

使用道具 舉報(bào)

7#
ID:282850 發(fā)表于 2020-5-7 16:13 | 只看該作者
OHHO 發(fā)表于 2020-5-7 12:42
寫了兩版不同的定位函數(shù)(主體函數(shù)去掉0x01,另一個(gè)保留0x01作對(duì)比),分別讓其在0xb0和0xb1頁點(diǎn)亮第一列。
...

從你試驗(yàn)看出,是原來寫錯(cuò)了。要不就是不讓寫0列,也有一種可能,0列被外殼窗沿?fù)踝〔挥谩?br /> 丟棄|1,放心用吧。
回復(fù)

使用道具 舉報(bào)

8#
ID:227832 發(fā)表于 2020-6-12 22:29 | 只看該作者
我也遇到這個(gè)問題,丟棄|1后正常,謝謝!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区三区桃乃木香奈 | 久久综合久色欧美综合狠狠 | 亚洲女优在线播放 | www国产亚洲精品久久网站 | 午夜免费福利片 | 天天看天天干 | 国产精品久久久久久久久久 | 成人精品鲁一区一区二区 | 操操日| 在线欧美日韩 | 91视频在线 | 久久高清 | 欧美涩| 欧美一区二区在线观看 | 国产探花 | 日本国产精品视频 | 狠狠爱视频 | 欧美啊v在线观看 | 久久久久av| av网站免费 | 精品久久久久久久久久久久久 | 国产视频一二三区 | 精品三级在线观看 | 亚洲精品一区二区三区中文字幕 | 欧美成人h版在线观看 | 九色 在线| 欧美在线免费 | 亚洲综合视频一区 | 国产日韩欧美中文 | 久久久久久网 | 在线超碰| www视频在线观看 | 精品视频久久久久久 | 国产高清精品在线 | 欧美久久久久久久久中文字幕 | 日日干天天操 | 中文字幕欧美一区二区 | 一级黄色日本片 | 久久久久久网站 | 在线成人免费视频 | 特黄一级 |