欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 關于0.91寸oled的ssd1306時序問題 [打印本頁]

作者: xda    時間: 2020-2-25 11:43
標題: 關于0.91寸oled的ssd1306時序問題
本帖最后由 xda 于 2020-2-27 11:07 編輯

說起來奇怪,在開始使用中景園的歷程點亮oled的時候,發現iic的初始化時序部分居然可以用spi的,查看ssd1306的手冊許久,也沒看出來所以然
只變了時序部分,我會在下面貼出來,其他什么都沒變,為什么顯示會有這么大差別呢,到底是我哪里沒注意到,,望大神指點
===================================iic原本時序===========================================

delay_ms(200);
OLED_WR_Byte(0xAE,OLED_CMD);//關閉顯示
        
        OLED_WR_Byte(0xf0,OLED_CMD);//---set low column address
        OLED_WR_Byte(0x0f,OLED_CMD);//---set high column address

        OLED_WR_Byte(0xC8,OLED_CMD);//-not offset

        OLED_WR_Byte(0x81,OLED_CMD);//設置對比度
        OLED_WR_Byte(0xff,OLED_CMD);

        OLED_WR_Byte(0xa1,OLED_CMD);//段重定向設置

        OLED_WR_Byte(0xa6,OLED_CMD);//
        
        OLED_WR_Byte(0xa8,OLED_CMD);//設置驅動路數
        OLED_WR_Byte(0x1f,OLED_CMD);
        
        OLED_WR_Byte(0xd3,OLED_CMD);
        OLED_WR_Byte(0x00,OLED_CMD);
        
        OLED_WR_Byte(0xd5,OLED_CMD);
        OLED_WR_Byte(0xf0,OLED_CMD);
        
        OLED_WR_Byte(0xd9,OLED_CMD);
        OLED_WR_Byte(0x22,OLED_CMD);
        
        OLED_WR_Byte(0xda,OLED_CMD);
        OLED_WR_Byte(0x02,OLED_CMD);
        
        OLED_WR_Byte(0xdb,OLED_CMD);
        OLED_WR_Byte(0x49,OLED_CMD);
        
        OLED_WR_Byte(0x8d,OLED_CMD);
        OLED_WR_Byte(0x14,OLED_CMD);
        
        OLED_WR_Byte(0xaf,OLED_CMD);
        OLED_Clear();


===================================iic原本時序===========================================
===================================移植spi時序===========================================
OLED_WR_Byte(0xAE,OLED_CMD);//--turn off oled panel
//        OLED_WR_Byte(0xf0,OLED_CMD);//---set low column address
//        OLED_WR_Byte(0x0f,OLED_CMD);//---set high column address
//        OLED_WR_Byte(0x40,OLED_CMD);//--set start line address  Set Mapping RAM Display Start Line (0x00~0x3F)
//        OLED_WR_Byte(0x81,OLED_CMD);//--set contrast control register
//        OLED_WR_Byte(0xCF,OLED_CMD); // Set SEG Output Current Brightness
//        OLED_WR_Byte(0xA1,OLED_CMD);//--Set SEG/Column Mapping     0xa0左右反置 0xa1正常
//        OLED_WR_Byte(0xC8,OLED_CMD);//Set COM/Row Scan Direction   0xc0上下反置 0xc8正常
//        OLED_WR_Byte(0xA6,OLED_CMD);//--set normal display
//        OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
//        OLED_WR_Byte(0x3f,OLED_CMD);//--1/64 duty
//        OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset        Shift Mapping RAM Counter (0x00~0x3F)
//        OLED_WR_Byte(0x00,OLED_CMD);//-not offset
//        OLED_WR_Byte(0xd5,OLED_CMD);//--set display clock divide ratio/oscillator frequency
//        OLED_WR_Byte(0x80,OLED_CMD);//--set divide ratio, Set Clock as 100 Frames/Sec
//        OLED_WR_Byte(0xD9,OLED_CMD);//--set pre-charge period
//        OLED_WR_Byte(0xF1,OLED_CMD);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
//        OLED_WR_Byte(0xDA,OLED_CMD);//--set com pins hardware configuration
//        OLED_WR_Byte(0x12,OLED_CMD);
//        OLED_WR_Byte(0xDB,OLED_CMD);//--set vcomh
//        OLED_WR_Byte(0x40,OLED_CMD);//Set VCOM Deselect Level
//        OLED_WR_Byte(0x20,OLED_CMD);//-Set Page Addressing Mode (0x00/0x01/0x02)
//        OLED_WR_Byte(0x02,OLED_CMD);//
//        OLED_WR_Byte(0x8D,OLED_CMD);//--set Charge Pump enable/disable
//        OLED_WR_Byte(0x14,OLED_CMD);//--set(0x10) disable
//        OLED_WR_Byte(0xA4,OLED_CMD);// Disable Entire Display On (0xa4/0xa5)
//        OLED_WR_Byte(0xA6,OLED_CMD);// Disable Inverse Display On (0xa6/a7)
//        OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel
//        
//        OLED_WR_Byte(0xAF,OLED_CMD); /*display ON*/
//        OLED_Clear();
//        OLED_Set_Pos(0,0);

===================================移植spi時序(去掉屏蔽符號)======================================

這兩個到底哪里不同會導致字體大小差異呢,其他函數都沒變,一點都沒改過,偶爾在點屏的時候發現的一點小意外

IMG_20200225_113448.jpg (4.72 MB, 下載次數: 59)

iic原本的時序顯示圖

iic原本的時序顯示圖

IMG_20200225_113246.jpg (4.92 MB, 下載次數: 57)

移植spi時序的顯示圖

移植spi時序的顯示圖

IMG_20200225_113355.jpg (5 MB, 下載次數: 69)

移植spi時序的顯示圖

移植spi時序的顯示圖

作者: xda    時間: 2020-2-26 09:41
真就沒人知道嗎

作者: xda    時間: 2020-3-11 17:20
自頂,有大神知道這個問題怎么解決不

作者: Y_G_G    時間: 2020-3-11 20:03
你把SPI的函數的先后順序排得和IIC的一模一樣試一下,有一些是雙字節命令,順序是不能變的
作者: xda    時間: 2020-3-15 22:38
Y_G_G 發表于 2020-3-11 20:03
你把SPI的函數的先后順序排得和IIC的一模一樣試一下,有一些是雙字節命令,順序是不能變的

我調整了部分spi初始化時許,但是還是一樣的字體。很好奇,因為這個屏幕我一般用的是iic驅動,然后字體都是默認16*16的,再用spi時序操作的時候沒有選擇(就只動時序其他代碼一律不動)就出現了這個怪問題
作者: Y_G_G    時間: 2020-3-16 00:49
OLED_WR_Byte(0xf0,OLED_CMD);//
OLED_WR_Byte(0x0f,OLED_CMD);//
OLED_WR_Byte(0xC8,OLED_CMD);/
=====================================
OLED_WR_Byte(0xf0,OLED_CMD);//
OLED_WR_Byte(0x0f,OLED_CMD);
OLED_WR_Byte(0x40,OLED_CMD);
你看一下你IIC和SPI的操作順序,根本不同好嗎?后面的就不用看了
雖然不能保證一定是這的問題,但找問題就是這么一步一步來的,至少先要保證操作的代碼地址是一樣的




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1