OLED顯示方向演算法調整方案

2021-10-03 15:17:51 字數 1367 閱讀 8507

本次用的oled 螢幕為ssd1317晶元驅動,96x96單色oled。根據datasheet上指令已經可以顯示,但是方向不對。

== 該顯示雖然沒問題,但是和電路結合,方向很不方便,正常一般是有fpc的地方為下,本文章提供一種方案。先把調整好的影象放上。==

該螢幕顯示設定了大小為96*12的緩衝,只要修改填充好的快取,即可修改方向。

為了修改方向,樓主的方案是將96*12位元組的緩衝擴充 為96*96位元組的bit緩衝,通過陣列演算法重新組合96*12的緩衝。

本螢幕的顯示模式為橫向顯示。

根據本螢幕的情況,演算法如下:

static void mem12_cur96(void)

} }}static void mem96_cur12(void)

currentmemory[(y) * 96 + x] = num;

num = 0;

} }}

該演算法的主要是想就是明確兩次轉化關係,第一次擴充:
mem[x + 96 * (n + y * 8)] = (currentmemory[y * 96 + x] >> n) & 0x01;

主要是把乙個位元組的每一位轉化為8個資料。

第二次重新整理:
for (n = 0; n < 8; n++)

currentmemory[(y) * 96 + x] = num;

成功旋轉90度,但是旋轉還是有問題,旋轉錯了方向。最後修改指令,修改引數,成功。
粘上初始化**:
static void init_ssd1317(spi_device_handle_t spi)

static void mem12_cur96(void)

} }}static void mem96_cur12(void)

currentmemory[(y) * 96 + 95 - x] = num;

num = 0;

} }}

樓主的辦法有些消耗記憶體,如果大家有更好的辦法,可以多多交流!

智慧型車 OLED小數顯示

基於中景園oled庫調參介面 oled小數點顯示 在調車時,如果老是每改乙個引數,就要下一次 這樣的效率太低了,因此基於這種現狀,我決定寫乙個調參介面。由於直立車引數需要細調,往往需要小數點後多位,而中景園oled的庫卻只能顯示整數,因此基於現狀,寫下了oled小數的程式。該小數顯示函式基於中景園o...

LCD顯示方向

一 ili9341記憶體到顯示位址的對映 本文只討論 正常顯示 不討論 垂直滾動顯示 模式。可以看到物理記憶體被兩個指標訪問,行指標和列指標,行指標範圍從000h到013fh,列指標範圍為0000h到00efh。也就是說,物理記憶體和lcd顯示屏的對應關係是一種豎屏 240 320 的對應的關係。至...

關於0 96 OLED顯示屏顯示數字

在使用0.96 oled顯示屏的時候,我發現顯示數字是乙個大問題,特別是關於顯示浮點型資料,自己折騰了一番,目前雖然浮點型顯示上還有不小的問題,但可以滿足最低級別的需求。首先宣告,本文中使用的程式是在正點原子 alientek戰艦stm32開發板v3 為基礎進行的修改,感謝原子哥!遺留的問題會在後面...