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

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

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

3天內不再提示

【RTT大賽作品連載】AB32VG1開發板之OLED屏

RT-Thread創新應用 ? 來源:RT-Thread創新應用 ? 作者:RT-Thread創新應用 ? 2022-01-04 08:58 ? 次閱讀

AB32VG1開發板外設資源豐富,此次來分享一下AB32VG1開發板驅動OLED屏的具體步驟。板上預留了IIC接口,可通過杜邦線連接IIC接口的OLED模塊,連接好OLED模塊后進行軟件上的設置。

pYYBAGHRtZmAYu-CAAL2_npQrkM546.png

打開“RT Thread setting”點擊添加按鈕,搜索框輸入“SSD1306”

poYBAGHRusWAZY9yAAHtUVvdrXI506.png

組件成功添加,,如下圖所示:

poYBAGHRvF2ABo48AACNMglSjZ4927.png

點擊右鍵,選擇詳細配置,軟件包選項卡配置如下:

poYBAGHRvTqAJ0aZAADa0jFn4vw934.png

硬件選項使能IIC接口

pYYBAGHRvXGAb3RRAABwcJSOiC0539.png

然后保存所勾選的配置,這樣成功得將SSD1306模塊所封裝的庫函數添加進工程中,所在目錄“RT-ThreadStudio\workspace\open_OLED\packages\ssd1306-latest”

poYBAGHRwG-AVHktAABznv21lxM576.png

加載完成后,可以查看驅動SSD1306的源代碼

#include 
#include 
#include 

#include 
#include 
#include "ssd1306.h"
#include "ssd1306_tests.h"

void ssd1306_TestBorder()
{
    ssd1306_Fill(Black);

    uint32_t start = rt_tick_get();
    uint32_t end = start;
    uint8_t x = 0;
    uint8_t y = 0;
    do {
        ssd1306_DrawPixel(x, y, Black);

        if((y == 0) && (x < 127))
            x++;
        else if((x == 127) && (y < 63))
            y++;
        else if((y == 63) && (x > 0)) 
            x--;
        else
            y--;

        ssd1306_DrawPixel(x, y, White);
        ssd1306_UpdateScreen();
    
        rt_thread_mdelay(5);
        end = rt_tick_get();
    } while((end - start) < 8000);
   
    rt_thread_mdelay(1000);
}

void ssd1306_TestFonts()
{
    ssd1306_Fill(Black);
    ssd1306_SetCursor(2, 0);
    ssd1306_WriteString("Font 16x26", Font_16x26, White);
    ssd1306_SetCursor(2, 26);
    ssd1306_WriteString("Font 11x18", Font_11x18, White);
    ssd1306_SetCursor(2, 26+18);
    ssd1306_WriteString("Font 7x10", Font_7x10, White);
    ssd1306_SetCursor(2, 26+18+10);
    ssd1306_WriteString("Font 6x8", Font_6x8, White);
    ssd1306_UpdateScreen();
}

void ssd1306_TestFPS()
{
    ssd1306_Fill(White);
   
    uint32_t start = rt_tick_get();
    uint32_t end = start;
    int fps = 0;
    char message[] = "ABCDEFGHIJK";
   
    ssd1306_SetCursor(2,0);
    ssd1306_WriteString("Testing...", Font_11x18, Black);
   
    do {
        ssd1306_SetCursor(2, 18);
        ssd1306_WriteString(message, Font_11x18, Black);
        ssd1306_UpdateScreen();
       
        char ch = message[0];
        memmove(message, message+1, sizeof(message)-2);
        message[sizeof(message)-2] = ch;

        fps++;
        end = rt_tick_get();
    } while((end - start) < 5000);
   
    rt_thread_mdelay(1000);

    char buff[64];
    fps = (float)fps / ((end - start) / 1000.0);
    snprintf(buff, sizeof(buff), "~%d FPS", fps);
   
    ssd1306_Fill(White);
    ssd1306_SetCursor(2, 18);
    ssd1306_WriteString(buff, Font_11x18, Black);
    ssd1306_UpdateScreen();
}

void ssd1306_TestLine()
{
    ssd1306_Line(1,1,SSD1306_WIDTH - 1,SSD1306_HEIGHT - 1,White);
    ssd1306_Line(SSD1306_WIDTH - 1,1,1,SSD1306_HEIGHT - 1,White);
    ssd1306_UpdateScreen();
    return;
}

void ssd1306_TestRectangle()
{
    uint32_t delta;

    for(delta = 0; delta < 5; delta ++) 
    {
        ssd1306_DrawRectangle(1 + (5*delta),1 + (5*delta) ,SSD1306_WIDTH-1 - (5*delta),SSD1306_HEIGHT-1 - (5*delta),White);
    }
    ssd1306_UpdateScreen();
    return;
}

void ssd1306_TestCircle()
{
    uint32_t delta;

    for(delta = 0; delta < 5; delta ++) 
    {
        ssd1306_DrawCircle(20* delta+30, 30, 10, White);
    }
    ssd1306_UpdateScreen();
    return;
}

void ssd1306_TestArc()
{
    ssd1306_DrawArc(30, 30, 30, 20, 270, White);
    ssd1306_UpdateScreen();
    return;
}

void ssd1306_TestPolyline()
{
    SSD1306_VERTEX loc_vertex[] =
    {
        {35,40},
        {40,20},
        {45,28},
        {50,10},
        {45,16},
        {50,10},
        {53,16}
    };

    ssd1306_Polyline(loc_vertex,sizeof(loc_vertex)/sizeof(loc_vertex[0]),White);
    ssd1306_UpdateScreen();
    return;
}

void ssd1306_TestAll()
{
    ssd1306_Init();

    ssd1306_TestFPS();
    rt_thread_mdelay(1000);

    ssd1306_TestBorder();

    ssd1306_TestFonts();
    rt_thread_mdelay(1000);

    ssd1306_Fill(Black);
    ssd1306_TestRectangle();
    ssd1306_TestLine();
    rt_thread_mdelay(1000);

    ssd1306_Fill(Black);
    ssd1306_TestPolyline();
    rt_thread_mdelay(1000);

    ssd1306_Fill(Black);
    ssd1306_TestArc();
    rt_thread_mdelay(1000);

    ssd1306_Fill(Black);
    ssd1306_TestCircle();
    rt_thread_mdelay(1000);
}

#ifdef FINSH_USING_MSH
MSH_CMD_EXPORT(ssd1306_TestAll, test ssd1306 oled driver);
#endif

編譯完成后,使用“Downloader.exe”下載器按照如下圖所示的步驟,將生成的.dcf文件下載進開發板中

pYYBAGHRxQaAMhgxAAL_7xedxhQ833.png

終端中輸入“ssd1306_TestAll”,即可啟動檢測OLED模塊的線程,檢測的效果如下:

pYYBAGHRydiAeU5sAH72Co5DlmM826.png

此次體驗了RT- Thread Studio的強大便捷之處,支持的軟件包組件更方便了IDE的外設驅動,的確不錯。

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

    關注

    119

    文章

    6218

    瀏覽量

    224596
  • 接口
    +關注

    關注

    33

    文章

    8687

    瀏覽量

    151672
  • 開發板
    +關注

    關注

    25

    文章

    5120

    瀏覽量

    97963
  • RT-Thread
    +關注

    關注

    31

    文章

    1305

    瀏覽量

    40303
  • 中科藍訊
    +關注

    關注

    9

    文章

    57

    瀏覽量

    9910
收藏 人收藏

    評論

    相關推薦

    RISC-V架構開發板AB32VG1測評GPIO點燈

    一、介紹 AB32VG1 開發板是以中科藍訊 (Bluetrum) 公司推出的基于RISC-V 架構的高配置芯片 AB32VG1 為核心所組成的。 · CPU: AB32VG
    的頭像 發表于 10-28 11:48 ?8525次閱讀
    RISC-V架構<b class='flag-5'>開發板</b><b class='flag-5'>AB32VG1</b>測評<b class='flag-5'>之</b>GPIO點燈

    RTT大賽作品連載AB32VG1上手

    AB32VG1上手操作,修改例程運行中的問題,成功點亮RGB。
    的頭像 發表于 10-28 18:31 ?7741次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】 <b class='flag-5'>AB32VG1</b>上手

    RTT大賽作品連載AB32VG1評估到貨點燈測試

    AB32VG1評估到貨點燈測試.
    的頭像 發表于 11-04 08:55 ?7762次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】<b class='flag-5'>AB32VG1</b>評估<b class='flag-5'>板</b>到貨點燈測試

    RTT大賽作品AB32VG1開發板OLED顯示實驗

    最近在玩AB32VG1,在做OLED顯示實驗時,很多關于AB32VG1驅動OLED的文章,很多都是官方例程操作,在msh窗口中輸入測試指令,測試驅動是否正常。很少有關于在main函數中
    的頭像 發表于 11-05 16:03 ?6297次閱讀
    <b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b>:<b class='flag-5'>AB32VG1</b><b class='flag-5'>開發板</b><b class='flag-5'>OLED</b>顯示實驗

    RTT大賽作品AB32VG1開發板—按鍵掃描

    ab32vg1開發板按鍵實驗
    的頭像 發表于 11-15 09:54 ?4271次閱讀
    <b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b>:<b class='flag-5'>AB32VG1</b><b class='flag-5'>開發板</b>—按鍵掃描

    RTT大賽作品連載AB32VG1評估到貨控制彩燈測試

    RTT大賽作品連載AB32VG1評估到貨控制彩燈測試篇;接下來看看在如何
    的頭像 發表于 11-07 19:39 ?5238次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】<b class='flag-5'>AB32VG1</b>評估<b class='flag-5'>板</b>到貨控制彩燈測試

    RTT大賽作品連載AB32VG1評估 音樂播放器

    RTT大賽作品連載AB32VG1評估 音樂播放器
    的頭像 發表于 11-12 21:11 ?6277次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】<b class='flag-5'>AB32VG1</b>評估<b class='flag-5'>板</b> 音樂播放器

    RTT大賽作品連載】中科藍訊AB32VG1開發板開箱篇

    介紹電路原理圖分析接口說明,AB32VG1開發板是以中科藍訊(Bluetrum)公司推出的基于RISC-V架構的高配置芯片AB5301A為核心所組成的。【RTT
    的頭像 發表于 11-13 10:01 ?1.1w次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】中科藍訊<b class='flag-5'>AB32VG1</b><b class='flag-5'>開發板</b>開箱篇

    RTT大賽作品連載AB32VG1開發環境搭建

    基于RT-Thread的AB32VG1開發環境搭建.
    的頭像 發表于 11-17 08:48 ?9457次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】<b class='flag-5'>AB32VG1</b>的<b class='flag-5'>開發</b>環境搭建

    RTT大賽作品連載AB32VG1評估 炫酷音樂播放器

    AB32VG1評估
    的頭像 發表于 11-26 08:43 ?7722次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】<b class='flag-5'>AB32VG1</b>評估<b class='flag-5'>板</b> 炫酷音樂播放器

    RTT大賽作品連載AB32VG1開發板開箱篇

    中科藍訊AB32VG1開發板的開箱之作,此開發板的硬件資源初略的介紹。
    的頭像 發表于 01-04 09:19 ?4581次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】<b class='flag-5'>AB32VG1</b><b class='flag-5'>開發板</b><b class='flag-5'>之</b>開箱篇

    【文章連載】RT-Thread創新應用大賽文章匯總

    連載】中科藍訊AB32VG1開發板開箱篇專欄作者:煲仔鹵煮的煉鋼【RTT大賽作品
    發表于 10-11 15:13

    RTT大賽作品連載AB32VG1開發板OLED顯示實驗

    中直接實現的,本編文章直接在MAIN函數實現OLED顯示,上電自動執行。根據說明書,AB32VG1 開發板上有一路 I2C,本文通過 RT-Thread Studio 配置 AB32VG1
    發表于 11-05 14:33

    如何在AB32VG1開發板OLED顯示使開發板上電

    中直接實現的,本編文章直接在MAIN函數實現OLED顯示,上電自動執行。 根據說明書,AB32VG1開發板上有一路 I2C,本文通過 RT-Thread Studio配置 AB32VG1
    的頭像 發表于 11-08 10:02 ?2667次閱讀
    如何在<b class='flag-5'>AB32VG1</b><b class='flag-5'>開發板</b><b class='flag-5'>OLED</b>顯示使<b class='flag-5'>開發板</b>上電

    RTT大賽作品連載】基于AB32VG1 sdk BLE例程

    RT-Thread基本中科藍訊AB32VG1 BLE開發快捷方便.
    的頭像 發表于 12-06 09:07 ?5040次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】基于<b class='flag-5'>AB32VG1</b> sdk BLE例程
    主站蜘蛛池模板: 国色精品VA在线观看免费视频| 久久99r66热这里只有精品| 久久66热在线视频精品| 偷拍自偷拍亚洲精品| 超碰97免费人妻| 日本老师xxxxx18| 俄罗斯9一14 young处| 日韩吃奶摸下AA片免费观看| 日韩特黄特色大片免费视频| 56prom在线精品国产| 久久中文字幕亚洲精品最新| 中文字幕亚洲无线码在线| 久久婷婷国产五月综合色啪最新| 在线播放午夜理论片| 美女医生深夜在家裸睡惨死| 97久久伊人精品影院| 欧美性爱-第1页| 电影果冻传媒在线播放| 兽皇VIDEO另类HD| 国产欧美二区综合| 亚洲欧美一区二区三区四区| 久草在线在线精品观看| 坠落的丝袜美人妻| 欧美人与动牲交XXXXBBBB免费| 波多野结衣 熟女| 无码观看AAAAAAAA片| 娇妻被朋友玩得呻吟在线电影| 中文字幕在线观看国产| 欧美Av无码高清在线| 豆奶视频在线高清观看| 性欧美13处14处破| 久久伊人网站| 大胸美女被cao哭| 亚洲免费网站在线观看| 美国一级大黄一片免费的网站| 97色伦97色伦国产| 色偷偷7777www| 久久99久久成人免费播放| av影音先锋天堂网| 亚洲AV无码乱码国产麻豆P| 看美女大腿中间的部分|