0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【沁恒-CH32V208-開發(fā)板免費試用】RTT 基于SSD1306顯示的一些例子

硬核造拆物 ? 來源:硬核造拆物 ? 作者:硬核造拆物 ? 2023-05-25 09:01 ? 次閱讀
title: 【沁恒-CH32V208-開發(fā)板免費試用】RTT 基于SSD1306顯示的一些例子
date: 2023-05-24 19:41:52
tags: [嵌入式,rt-thread移植]

概述

沁恒-CH32V208是一款基于risc-v內(nèi)核的微控制器,支持RT-thread實時操作系統(tǒng)。本文將介紹如何使用SSD1306顯示屏和U8G2庫在RT-thread上進行開發(fā),并提供一些示例代碼。通過本文的介紹,讀者可以了解如何在沁恒-CH32V208上使用SSD1306顯示屏和U8G2庫進行圖形化界面開發(fā),以及如何繪制矩形、圓形、位圖等圖形元素,以及如何滾動顯示內(nèi)容等。這些功能可以幫助開發(fā)者快速構(gòu)建出具有良好用戶體驗的應(yīng)用程序。大家若有興趣可以繼續(xù)深入研究哈。

環(huán)境/工具

需要借助一些軟件和硬件相結(jié)合,做出項目.

軟件

  • Windows10 (其他平臺沒測試)
  • VScode
  • make (針對makefile編譯)
  • risc-v 8.2.0 工具箱 (github有提供riscv-none-embed-XXX壓縮包)
  • WCHISPTOOLS (沁恒自帶燒錄工具)
  • SERIAL DEBUG (查看調(diào)試日志)

原理

讓我們來了解一下沁恒-CH32V208上使用SSD1306顯示屏和U8G2庫進行開發(fā)的原理。

首先,SSD1306是一款128x32像素的OLED顯示屏,具有高亮度、高對比度、低功耗等特點。在沁恒-CH32V208上使用SSD1306顯示屏需要通過I2C總線進行通信,并使用U8G2庫進行驅(qū)動。

U8G2庫是一款輕量級的圖形化界面庫,支持多種顯示屏類型和控制器,包括SSD1306、SH1106、ST7920等。在使用U8G2庫時,需要根據(jù)顯示屏類型和控制器類型選擇相應(yīng)的初始化函數(shù),并設(shè)置相關(guān)參數(shù),如I2C地址、SPI模式等。

在使用U8G2庫繪制圖形時,可以使用U8G2庫提供的API函數(shù),如u8g2_DrawFrame()函數(shù)繪制矩形、u8g2_DrawCircle()函數(shù)繪制圓形、u8g2_DrawXBM()函數(shù)顯示位圖等。同時,U8G2庫還支持滾動顯示、反轉(zhuǎn)顯示、旋轉(zhuǎn)顯示等功能,可以根據(jù)實際需求進行設(shè)置。

通過以上原理介紹,可以了解到在沁恒-CH32V208上使用SSD1306顯示屏和U8G2庫進行開發(fā)的基本原理和流程。

感謝 wuhanstudio 提供 rt-u8g2 開源庫

測試

基于github->01LED上復(fù)制到03SSD1306文件夾下,并新增一些內(nèi)容,如下:

在同一個文件夾下新建文件,命名為rt-u8g2/rt-u8g2.mk

PACKAGE_NAME := rt-u8g2
CPPPATHS +=	-I$(APP_ROOT)/$(PACKAGE_NAME)/port
CPPPATHS +=	-I$(APP_ROOT)/$(PACKAGE_NAME)/src
CPPPATHS +=	-I$(APP_ROOT)/$(PACKAGE_NAME)
C_FILES += $(wildcard $(APP_ROOT)/$(PACKAGE_NAME)/src/*.c)
C_FILES += $(wildcard $(APP_ROOT)/$(PACKAGE_NAME)/port/*.c)
# 對應(yīng)你的ssd1306型號
# C_FILES += $(APP_ROOT)/$(PACKAGE_NAME)/examples/ssd1306_12832_sw_i2c_example.c
# C_FILES += $(APP_ROOT)/$(PACKAGE_NAME)/examples/ssd1306_12864_hw_i2c_example.c
# C_FILES += $(APP_ROOT)/$(PACKAGE_NAME)/examples/ssd1306_12864_sw_i2c_example.c

在同一個文件夾下打開src.mk,并追加幾行,

include rt-u8g2/rt-u8g2.mk
# include rt_ili9341/rt_ili9341.mk
# include ssd1306/ssd1306.mk

然后我選擇模擬i2c,所以選擇ssd1306_12832_sw_i2c_example.c,

#define OLED_I2C_PIN_SCL rt_pin_get("PC.0")
#define OLED_I2C_PIN_SDA rt_pin_get("PC.1")

int main(void)
{
    rt_pin_mode(LED0, PIN_MODE_OUTPUT);
    rt_kprintf("MCU-CH32V208WBU6\\\\r\\\\n");

    u8g2_t u8g2;

    // Initialization
    u8g2_Setup_ssd1306_i2c_128x32_univision_f(&u8g2, U8G2_R0, u8x8_byte_sw_i2c, u8x8_rt_gpio_and_delay);
    u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_I2C_CLOCK, OLED_I2C_PIN_SCL);
    u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_I2C_DATA, OLED_I2C_PIN_SDA);

    u8g2_InitDisplay(&u8g2);
    u8g2_SetPowerSave(&u8g2, 0);
    int i = 10;
    char *ch1 = rt_malloc(20);
    char *ch2 = rt_malloc(30);
    ch1 = "Hello, rx-ted,";

    while (i -= 1)
    {

        u8g2_ClearBuffer(&u8g2);
        u8g2_SetFont(&u8g2, u8g2_font_ncenB08_tr);
        rt_sprintf(ch2, "%s%d\\\\n", ch1, i);
        rt_kprintf(ch2);
        u8g2_DrawStr(&u8g2, 1, 10, ch2);
        u8g2_SendBuffer(&u8g2);
        rt_thread_mdelay(1000);
        // u8g2_ClearDisplay(&u8g2);
        u8g2_DrawCircle(&u8g2, 118, 20, 5, U8G2_DRAW_ALL);
        
        u8g2_SendBuffer(&u8g2);
        rt_free(ch2);

        rt_thread_mdelay(1000);
    }

ssd1306.png

代碼

傳送門: github->03SSD1306

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7336

    瀏覽量

    150127
  • 嵌入式
    +關(guān)注

    關(guān)注

    5046

    文章

    18821

    瀏覽量

    298625
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4771

    瀏覽量

    96189
  • RTT
    RTT
    +關(guān)注

    關(guān)注

    0

    文章

    64

    瀏覽量

    16991
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1239

    瀏覽量

    39442
收藏 人收藏

    評論

    相關(guān)推薦

    CH32V208 開發(fā)板免費試用RTT 純命令行(makefile) 和 點燈測試

    CH32V208 開發(fā)板款基于risc-v內(nèi)核的微控制器,具有豐富的外設(shè)資源和高性能的
    的頭像 發(fā)表于 05-25 09:03 ?1818次閱讀
    【<b class='flag-5'>沁</b><b class='flag-5'>恒</b> <b class='flag-5'>CH32V208</b> <b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費</b><b class='flag-5'>試用</b>】<b class='flag-5'>RTT</b> 純命令行(makefile) 和 點燈測試

    CH32V307 評估開發(fā)視頻集錦

    升級的功能熱門直播:32位無線型RISC-V單片機 CH32V208開發(fā)入門免費試用:【搶先體驗】
    發(fā)表于 03-10 16:40

    【搶先體驗】 CH32V208 開發(fā)板免費試用

    、心得,提供文字+視頻展示。試用報告要求3篇試用報告+1個試用視頻(視頻需要發(fā)布在硬聲APP里面)報告形式:標(biāo)題格式【
    發(fā)表于 03-10 17:58

    CH32V208 開發(fā)板免費試用】開箱 + 資料整理 + 環(huán)境搭建

    ,先點燈。來的晚,所以也少踩了一些坑,看到不少人說送的WCH-Link模式不對,無法直接下載,參考下大佬的文章,用他實踐過的方式進行下載?!?b class='flag-5'>沁
    發(fā)表于 04-16 20:50

    CH32V208 開發(fā)板免費試用開發(fā)環(huán)境配置及開箱測試

    CH32V208 開發(fā)板免費試用】+開箱測試硬件資源介紹
    發(fā)表于 04-17 23:30

    CH32V208 開發(fā)板免費試用】RT-Thread ssd1306驅(qū)動

    目的用RTT 驅(qū)動SSD1306方法步驟下載rtthread源碼:https://gitee.com/lugl/rt-thread。這個創(chuàng)庫我會修正一些試用的問題。在rt-thread
    發(fā)表于 04-21 08:20

    CH32V208 開發(fā)板免費試用】體驗openharmonyOS

    CH32V208移植了openharmony的liteOS。今天體驗了官方給的示例,展示如何體驗openharmonyOS在國產(chǎn)芯片
    發(fā)表于 04-26 07:48

    CH32V208 開發(fā)板免費試用開發(fā)板開箱以及開發(fā)環(huán)境搭建

    感謝電子發(fā)燒友論壇提供的這次測評機會,趁著這次五一假期來學(xué)習(xí)的32位RISC-V內(nèi)核處理器CH32V208的評估學(xué)習(xí)。收到的硬件有
    發(fā)表于 04-29 15:41

    CH32V208 開發(fā)板免費試用】1.建立燒錄開發(fā)調(diào)試環(huán)境

    CH32V208 開發(fā)板免費試用】 1.建立燒錄開發(fā)
    發(fā)表于 05-04 07:54

    CH32V208 開發(fā)板免費試用RTT 純命令行(makefile) 和 點燈測試

    title: 【 CH32V208 開發(fā)板免費試用RT
    發(fā)表于 05-24 19:33

    -CH32V208-開發(fā)板免費試用RTT 基于SSD1306顯示一些例子

    title: 【-CH32V208-開發(fā)板免費試用RT
    發(fā)表于 05-24 20:13

    CH32V208 開發(fā)板免費試用RTT 模擬Arduino庫開發(fā)項目

    操作系統(tǒng)。本文將介紹如何使用RTT模擬Arduino庫在 CH32V208開發(fā)板上進行開發(fā),
    發(fā)表于 05-24 20:31

    CH32V208開發(fā)板試用】1-構(gòu)建RTT-Stdio開發(fā)環(huán)境

    CH32V208開發(fā)板試用】1-創(chuàng)建RTT-Stdio
    發(fā)表于 05-28 15:41

    CH32V208開發(fā)板試用】2-ARDUINO

    CH32V208開發(fā)板試用】2-ARDUINO 天問Block站式的
    發(fā)表于 05-28 15:46

    CH32V208 開發(fā)板免費試用 CH32V208 開發(fā)板的編譯和下載

    的 USB 是同個信號。 按上面的方法就可以把自己寫的代碼燒錄至 CH32V208 開發(fā)板,也可以測試和運行
    發(fā)表于 06-09 23:13