色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

GUI方式控制OLED

嵌入式應用開發 ? 來源:嵌入式應用開發 ? 作者:嵌入式應用開發 ? 2022-05-06 09:23 ? 次閱讀

GUI簡析

對于屏幕而言,如果需要進行畫圖、顯示中英文字符、顯示圖片等怎么辦,這些都是上層應用做的。這有很多小伙伴有問到一些圖形的處理,我們這里提供了一些基本的功能 在目錄:RaspberryPi\c\lib\GUI\GUI_Paint.c(.h)中可以找到GUI

LCD rpi GUI.png


在目錄:RaspberryPi\c\lib\Fonts下是GUI依賴的字符字體,

LCD rpi Font.png


  • 新建圖像屬性:新建一個圖像屬性,這個屬性包括圖像緩存的名稱、寬度、高度、翻轉角度、顏色

void Paint_NewImage(UBYTE *image, UWORD Width, UWORD Height, UWORD Rotate, UWORD Color) 參數: image: 圖像緩存的名稱,實際上是一個指向圖像緩存首地址的指針; Width: 圖像緩存的寬度; Height: 圖像緩存的高度; Rotate:圖像的翻轉的角度 Color :圖像的初始顏色;

  • 選擇圖像緩存:選擇圖像緩存,選擇的目的是你可以創建多個圖像屬性,圖像緩存可以存在多個,你可以選擇你所創建的每一張圖像

void Paint_SelectImage(UBYTE *image) 參數: image: 圖像緩存的名稱,實際上是一個指向圖像緩存首地址的指針;

  • 圖像旋轉:設置選擇好的圖像的旋轉角度,最好使用在Paint_SelectImage()后,可以選擇旋轉0、90、180、270

void Paint_SetRotate(UWORD Rotate) 參數: Rotate: 圖像選擇角度,可以選擇ROTATE_0、ROTATE_90、ROTATE_180、ROTATE_270分別對應0、90、180、270度

  • 設置像素點的尺寸

void Paint_SetScale(UBYTE scale) 參數: scale: 像素點的尺寸,2:每個像素點占一位;4:每個像素點占兩位

  • 圖像鏡像翻轉:設置選擇好的圖像的鏡像翻轉,可以選擇不鏡像、關于水平鏡像、關于垂直鏡像、關于圖像中心鏡像。

void Paint_SetMirroring(UBYTE mirror) 參數: mirror: 圖像的鏡像方式,可以選擇MIRROR_NONE、MIRROR_HORIZONTAL、MIRROR_VERTICAL、MIRROR_ORIGIN分別對應不鏡像、關于水平鏡像、關于垂直鏡像、關于圖像中心鏡像

  • 設置點在緩存中顯示位置和顏色:這里是GUI最核心的一個函數、處理點在緩存中顯示位置和顏色;

void Paint_SetPixel(UWORD Xpoint, UWORD Ypoint, UWORD Color) 參數: Xpoint: 點在圖像緩存中X位置 Ypoint: 點在圖像緩存中Y位置 Color: 點顯示的顏色

  • 圖像緩存填充顏色:把圖像緩存填充為某顏色,一般作為屏幕刷白的作用

void Paint_Clear(UWORD Color) 參數: Color: 填充的顏色

  • 圖像緩存部分窗口填充顏色:把圖像緩存的某部分窗口填充為某顏色,一般作為窗口刷白的作用,常用于時間的顯示,刷白上一秒

void Paint_ClearWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UWORD Color) 參數: Xstart: 窗口的X起點坐標 Ystart: 窗口的Y起點坐標 Xend: 窗口的X終點坐標 Yend: 窗口的Y終點坐標 Color: 填充的顏色

  • 畫點:在圖像緩存中,在(Xpoint, Ypoint)上畫點,可以選擇顏色,點的大小,點的風格

void Paint_DrawPoint(UWORD Xpoint, UWORD Ypoint, UWORD Color, DOT_PIXEL Dot_Pixel, DOT_STYLE Dot_Style) 參數: Xpoint: 點的X坐標 Ypoint: 點的Y坐標 Color: 填充的顏色 Dot_Pixel: 點的大小,提供默認的8種大小點 typedef enum { DOT_PIXEL_1X1 = 1, // 1 x 1 DOT_PIXEL_2X2 , // 2 X 2 DOT_PIXEL_3X3 , // 3 X 3 DOT_PIXEL_4X4 , // 4 X 4 DOT_PIXEL_5X5 , // 5 X 5 DOT_PIXEL_6X6 , // 6 X 6 DOT_PIXEL_7X7 , // 7 X 7 DOT_PIXEL_8X8 , // 8 X 8 } DOT_PIXEL; Dot_Style: 點的風格,大小擴充方式是以點為中心擴大還是以點為左下角往右上擴大 typedef enum { DOT_FILL_AROUND = 1, DOT_FILL_RIGHTUP, } DOT_STYLE;

  • 畫線:在圖像緩存中,從 (Xstart, Ystart) 到 (Xend, Yend) 畫線,可以選擇顏色,線的寬度,線的風格

void Paint_DrawLine(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UWORD Color, LINE_STYLE Line_Style , LINE_STYLE Line_Style) 參數: Xstart: 線的X起點坐標 Ystart: 線的Y起點坐標 Xend: 線的X終點坐標 Yend: 線的Y終點坐標 Color: 填充的顏色 Line_width: 線的寬度,提供默認的8種寬度 typedef enum { DOT_PIXEL_1X1 = 1, // 1 x 1 DOT_PIXEL_2X2 , // 2 X 2 DOT_PIXEL_3X3 , // 3 X 3 DOT_PIXEL_4X4 , // 4 X 4 DOT_PIXEL_5X5 , // 5 X 5 DOT_PIXEL_6X6 , // 6 X 6 DOT_PIXEL_7X7 , // 7 X 7 DOT_PIXEL_8X8 , // 8 X 8 } DOT_PIXEL; Line_Style: 線的風格,選擇線是以直線連接還是以虛線的方式連接 typedef enum { LINE_STYLE_SOLID = 0, LINE_STYLE_DOTTED, } LINE_STYLE;

  • 畫矩形:在圖像緩存中,從 (Xstart, Ystart) 到 (Xend, Yend) 畫一個矩形,可以選擇顏色,線的寬度,是否填充矩形內部

void Paint_DrawRectangle(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UWORD Color, DOT_PIXEL Line_width, DRAW_FILL Draw_Fill) 參數: Xstart: 矩形的X起點坐標 Ystart: 矩形的Y起點坐標 Xend: 矩形的X終點坐標 Yend: 矩形的Y終點坐標 Color: 填充的顏色 Line_width: 矩形四邊的寬度,提供默認的8種寬度 typedef enum { DOT_PIXEL_1X1 = 1, // 1 x 1 DOT_PIXEL_2X2 , // 2 X 2 DOT_PIXEL_3X3 , // 3 X 3 DOT_PIXEL_4X4 , // 4 X 4 DOT_PIXEL_5X5 , // 5 X 5 DOT_PIXEL_6X6 , // 6 X 6 DOT_PIXEL_7X7 , // 7 X 7 DOT_PIXEL_8X8 , // 8 X 8 } DOT_PIXEL; Draw_Fill: 填充,是否填充矩形的內部 typedef enum { DRAW_FILL_EMPTY = 0, DRAW_FILL_FULL, } DRAW_FILL;

  • 畫圓:在圖像緩存中,以 (X_Center Y_Center) 為圓心,畫一個半徑為Radius的圓,可以選擇顏色,線的寬度,是否填充圓內部

void Paint_DrawCircle(UWORD X_Center, UWORD Y_Center, UWORD Radius, UWORD Color, DOT_PIXEL Line_width, DRAW_FILL Draw_Fill) 參數: X_Center: 圓心的X坐標 Y_Center: 圓心的Y坐標 Radius:圓的半徑 Color: 填充的顏色 Line_width: 圓弧的寬度,提供默認的8種寬度 typedef enum { DOT_PIXEL_1X1 = 1, // 1 x 1 DOT_PIXEL_2X2 , // 2 X 2 DOT_PIXEL_3X3 , // 3 X 3 DOT_PIXEL_4X4 , // 4 X 4 DOT_PIXEL_5X5 , // 5 X 5 DOT_PIXEL_6X6 , // 6 X 6 DOT_PIXEL_7X7 , // 7 X 7 DOT_PIXEL_8X8 , // 8 X 8 } DOT_PIXEL; Draw_Fill: 填充,是否填充圓的內部 typedef enum { DRAW_FILL_EMPTY = 0, DRAW_FILL_FULL, } DRAW_FILL;

  • 寫Ascii字符:在圖像緩存中,在 (Xstart Ystart) 為左頂點,寫一個Ascii字符,可以選擇Ascii碼可視字符字庫、字體前景色、字體背景色

void Paint_DrawChar(UWORD Xstart, UWORD Ystart, const char Ascii_Char, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background) 參數: Xstart: 字符的左頂點X坐標 Ystart: 字體的左頂點Y坐標 Ascii_Char:Ascii字符 Font: Ascii碼可視字符字庫,在Fonts文件夾中提供了以下字體: font8:5*8的字體 font12:7*12的字體 font16:11*16的字體 font20:14*20的字體 font24:17*24的字體 Color_Foreground: 字體顏色 Color_Background: 背景顏色

  • 寫英文字符串:在圖像緩存中,在 (Xstart Ystart) 為左頂點,寫一串英文字符,可以選擇Ascii碼可視字符字庫、字體前景色、字體背景色

void Paint_DrawString_EN(UWORD Xstart, UWORD Ystart, const char * pString, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background) 參數: Xstart: 字符的左頂點X坐標 Ystart: 字體的左頂點Y坐標 pString:字符串,字符串是一個指針 Font: Ascii碼可視字符字庫,在Fonts文件夾中提供了以下字體: font8:5*8的字體 font12:7*12的字體 font16:11*16的字體 font20:14*20的字體 font24:17*24的字體 Color_Foreground: 字體顏色 Color_Background: 背景顏色

  • 寫中文字符串:在圖像緩存中,在 (Xstart Ystart) 為左頂點,寫一串中文字符,可以選擇GB2312編碼字符字庫、字體前景色、字體背景色;

void Paint_DrawString_CN(UWORD Xstart, UWORD Ystart, const char * pString, cFONT* font, UWORD Color_Foreground, UWORD Color_Background) 參數: Xstart: 字符的左頂點X坐標 Ystart: 字體的左頂點Y坐標 pString:字符串,字符串是一個指針 Font: GB2312編碼字符字庫,在Fonts文件夾中提供了以下字體: font12CN:ascii字符字體11*21,中文字體16*21 font24CN:ascii字符字體24*41,中文字體32*41 Color_Foreground: 字體顏色 Color_Background: 背景顏色

  • 寫數字:在圖像緩存中,在 (Xstart Ystart) 為左頂點,寫一串數字,可以選擇Ascii碼可視字符字庫、字體前景色、字體背景色

void Paint_DrawNum(UWORD Xpoint, UWORD Ypoint, double Nummber, sFONT* Font, UWORD Digit, UWORD Color_Foreground, UWORD Color_Background) 參數: Xpoint: 字符的左頂點X坐標 Ypoint: 字體的左頂點Y坐標 Nummber:顯示的數字,可以是小數 Digit:小數位數,不足補零 Font: Ascii碼可視字符字庫,在Fonts文件夾中提供了以下字體: font8:5*8的字體 font12:7*12的字體 font16:11*16的字體 font20:14*20的字體 font24:17*24的字體 Color_Foreground: 字體顏色 Color_Background: 背景顏色

  • 顯示時間:在圖像緩存中,在 (Xstart Ystart) 為左頂點,顯示一段時間,可以選擇Ascii碼可視字符字庫、字體前景色、字體背景色;

void Paint_DrawTime(UWORD Xstart, UWORD Ystart, PAINT_TIME *pTime, sFONT* Font, UWORD Color_Background, UWORD Color_Foreground) 參數: Xstart: 字符的左頂點X坐標 Ystart: 字體的左頂點Y坐標 pTime:顯示的時間,這里定義好了一個時間的結構體,只要把時分秒各位數傳給參數; Font: Ascii碼可視字符字庫,在Fonts文件夾中提供了以下字體: font8:5*8的字體 font12:7*12的字體 font16:11*16的字體 font20:14*20的字體 font24:17*24的字體 Color_Foreground: 字體顏色 Color_Background: 背景顏色

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 屏幕
    +關注

    關注

    6

    文章

    1199

    瀏覽量

    55855
  • 字符
    +關注

    關注

    0

    文章

    233

    瀏覽量

    25227
  • GUI
    GUI
    +關注

    關注

    3

    文章

    662

    瀏覽量

    39761
收藏 人收藏

    評論

    相關推薦

    OLED驅動方式

    OLED的驅動方式分為主動式驅動(有源驅動)和被動式驅動(無源驅動)。無源驅動分為靜態驅動電路和動態驅動電路。
    發表于 11-24 10:36 ?4731次閱讀
    <b class='flag-5'>OLED</b>驅動<b class='flag-5'>方式</b>

    請問四軸中OLED用到的GUI函數庫中的GUI是什么?

    大家好,求問,四軸中OLED用到的GUI函數庫,是什么GUI,哪里有這個的源碼下載和講解???
    發表于 07-29 01:44

    OLED是什么?OLED控制器是什么?

    OLED是什么?OLED控制器是什么?SSD1309是什么?SSD1309有哪些特點?
    發表于 07-27 08:43

    各種OLED屏幕的使用方式的總結

    本文主要是筆者在學習單片機過程中,所遇各種OLED屏幕的使用方式的總結歸納。關于SSD1306驅動的OLED屏幕開源程序有很多,其與單片機通信的方式主要有兩種,一是SPI通信,二是I2
    發表于 12-07 07:38

    OLED驅動的基本原理及驅動方式

    本文介紹了OLED驅動的基本原理,又介紹了OLED的幾種驅動方式,包括8080串口驅動,IIC驅動,SPI驅動方式,并附上完整源碼,親測好用,供大家參考,謝謝!
    發表于 12-07 07:39

    OLED模塊的驅動方式是怎樣的

    OLED模塊的驅動方式是怎樣的?
    發表于 01-27 07:10

    OLED通信方式概述

    一、概述OLED通信方式有8080、6800、SPI、二、實驗材料1、0.96寸OLED屏。2、最小系統STM32F103C8T6.3、杜邦線若干。三、接線四、程序代碼五、實驗效果程序及相關資料
    發表于 02-16 06:22

    oled屏幕的通信方式分為幾種

    oled顯示oled屏幕的通信方式分為2種:1、iic通信方式它是由數據線 SDA 和時鐘 SCL 構成的串行總線, 可發送和接收數據。在 CPU 與被控 IC 之間、IC 與 IC
    發表于 02-16 07:03

    OLED彩色化方式

    OLED彩色化方式   OLED以彩色化的方式區分可分為三種,一,"RGB
    發表于 12-11 18:31 ?2127次閱讀
    <b class='flag-5'>OLED</b>彩色化<b class='flag-5'>方式</b>

    基于Matlab_GUI的新型界面開發方式

    文章先簡單介紹Matlab/ GUI 的基本特點,然后詳細說明了一種在實踐工程中得到具體應用的GUI 界面,力圖說明新型的界面開發方式能夠在數據處理特別是信號處理方面優于VC 平臺,具有強大的
    發表于 03-02 16:29 ?76次下載
    基于Matlab_<b class='flag-5'>GUI</b>的新型界面開發<b class='flag-5'>方式</b>

    交流伺服電機的模糊PID控制GUI設計

    交流伺服電機的模糊PID控制GUI設計-2011。
    發表于 04-06 10:55 ?26次下載

    初識GUI應用函數以及文本方式顏色控制函數

    C_GUI編程入門 第一章:認識GUI編程 在程序設計中,往往我們最后編譯的結果都是通過控制臺輸出所獲得的一系列數據,隨著科技一天天的進步,人們對程序的美觀的要求也逐漸加深,所以漸漸的,圖型顯示就變
    的頭像 發表于 08-26 11:29 ?4639次閱讀

    Juju GUI Juju GUI管理控制

    juju-gui.zip
    發表于 04-29 14:17 ?2次下載
    Juju <b class='flag-5'>GUI</b> Juju <b class='flag-5'>GUI</b>管理<b class='flag-5'>控制</b>臺

    DALI 主控制GUI 用戶手冊

    DALI 主控制GUI 用戶手冊
    發表于 01-09 19:11 ?0次下載
    DALI 主<b class='flag-5'>控制</b>器 <b class='flag-5'>GUI</b> 用戶手冊

    DALI 主控制GUI 用戶手冊

    DALI 主控制GUI 用戶手冊
    發表于 06-30 19:01 ?1次下載
    DALI 主<b class='flag-5'>控制</b>器 <b class='flag-5'>GUI</b> 用戶手冊
    主站蜘蛛池模板: 国产免费看片| 中文字幕亚洲欧美日韩2o19| 午夜理论片日本中文在线| qvod电影网站| 日本人吃奶玩奶虐乳| 色综合伊人色综合网站下载| xiah俊秀| 在线看片亚洲| 免费人妻无码AV不卡在线| 97人妻无码AV碰碰视频| 欧美精品亚洲精品日韩专区一| 亚洲精品嫩草研究院久久| 好男人在线高清WWW免费观看| 无码天堂亚洲内射精品课堂| 国产亚洲欧美ai在线看片| 亚洲一区国产| 麻豆一区二区三区蜜桃免费| 别插我B嗯啊视频免费| 亚洲AV久久久噜噜噜噜| 久久久久久久免费| 92午夜免费福利757| 久久久久亚洲日日精品| 国产精品人妻午夜福利| 一个吃奶两个添下面H| 免费精品一区二区三区AA片| 黑人干日本美女| 国产精彩视频在线| 午夜A级理论片左线播放| 国内外成人免费在线视频| 乌克兰少妇大胆大BBW| 欧美18videosex| 国产色婷亚洲99精品AV在| 在线观看国产人视频免费中国| 麻豆国产自制在线观看| 黑粗硬大欧美在线视频| 国产午夜亚洲精品理论片八戒| 色婷婷亚洲精品天天综合影院| 国产一区亚洲| 国产精品嫩草久久久久| 国产99久久九九免费精品无码 | 久久久国产精品免费A片3D|