一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

硬核造拆物 ? 來(lái)源:硬核造拆物 ? 作者:硬核造拆物 ? 2023-05-25 09:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

title: 【沁恒-CH32V208-開(kāi)發(fā)板免費(fèi)試用】RTT 基于SSD1306顯示的一些例子
date: 2023-05-24 19:41:52
tags: [嵌入式,rt-thread移植]

概述

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

環(huán)境/工具

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

軟件

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

原理

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

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

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

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

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

感謝 wuhanstudio 提供 rt-u8g2 開(kāi)源庫(kù)

測(cè)試

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

在同一個(gè)文件夾下新建文件,命名為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)
# 對(duì)應(yīng)你的ssd1306型號(hào)
# 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

在同一個(gè)文件夾下打開(kāi)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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7947

    瀏覽量

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

    關(guān)注

    5149

    文章

    19655

    瀏覽量

    317282
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5669

    瀏覽量

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

    關(guān)注

    0

    文章

    66

    瀏覽量

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

    關(guān)注

    32

    文章

    1403

    瀏覽量

    41883
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    CH32V208 開(kāi)發(fā)板免費(fèi)試用RTT 純命令行(makefile) 和 點(diǎn)燈測(cè)試

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

    CH32V307 評(píng)估開(kāi)發(fā)視頻集錦

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

    【搶先體驗(yàn)】 CH32V208 開(kāi)發(fā)板免費(fèi)試用

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

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

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

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

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

    CH32V208 開(kāi)發(fā)板免費(fèi)試用】RT-Thread ssd1306驅(qū)動(dòng)

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

    CH32V208 開(kāi)發(fā)板免費(fèi)試用】體驗(yàn)openharmonyOS

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

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

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

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

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

    CH32V208 開(kāi)發(fā)板免費(fèi)試用RTT 純命令行(makefile) 和 點(diǎn)燈測(cè)試

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

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

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

    CH32V208 開(kāi)發(fā)板免費(fèi)試用RTT 模擬Arduino庫(kù)開(kāi)發(fā)項(xiàng)目

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

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

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

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

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

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

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