精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

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

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

概述

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

環境/工具

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

軟件

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

原理

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

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

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

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

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

感謝 wuhanstudio 提供 rt-u8g2 開源庫

測試

基于github->01LED上復制到03SSD1306文件夾下,并新增一些內容,如下:

在同一個文件夾下新建文件,命名為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)
# 對應你的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

審核編輯:湯梓紅

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

    關注

    48

    文章

    7490

    瀏覽量

    151062
  • 嵌入式
    +關注

    關注

    5069

    文章

    19021

    瀏覽量

    303406
  • 開發板
    +關注

    關注

    25

    文章

    4949

    瀏覽量

    97207
  • RTT
    RTT
    +關注

    關注

    0

    文章

    65

    瀏覽量

    17088
  • RT-Thread
    +關注

    關注

    31

    文章

    1273

    瀏覽量

    39928
收藏 人收藏

    評論

    相關推薦

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

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

    CH32V307 評估開發視頻集錦

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

    【搶先體驗】 CH32V208 開發板免費試用

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

    CH32V208 開發板免費試用】開箱 + 資料整理 + 環境搭建

    ,先點燈。來的晚,所以也少踩了一些坑,看到不少人說送的WCH-Link模式不對,無法直接下載,參考下大佬的文章,用他實踐過的方式進行下載。【
    發表于 04-16 20:50

    CH32V208 開發板免費試用開發環境配置及開箱測試

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

    CH32V208 開發板免費試用】RT-Thread ssd1306驅動

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

    CH32V208 開發板免費試用】體驗openharmonyOS

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

    CH32V208 開發板免費試用開發板開箱以及開發環境搭建

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

    CH32V208 開發板免費試用】1.建立燒錄開發調試環境

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

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

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

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

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

    CH32V208 開發板免費試用RTT 模擬Arduino庫開發項目

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

    CH32V208開發板試用】1-構建RTT-Stdio開發環境

    CH32V208開發板試用】1-創建RTT-Stdio
    發表于 05-28 15:41

    CH32V208開發板試用】2-ARDUINO

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

    CH32V208 開發板免費試用 CH32V208 開發板的編譯和下載

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