chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

零知開源——STM32F4實(shí)現(xiàn)ILI9486顯示屏UI界面系列教程(三):記事本功能實(shí)現(xiàn)

PCB56242069 ? 來源:PCB56242069 ? 作者:PCB56242069 ? 2025-06-27 09:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

?

智能設(shè)備的人機(jī)交互界面中,記事本功能是基礎(chǔ)且重要的應(yīng)用場(chǎng)景。本教程將基于STM32F4和LVGL庫,在3.5英寸ILI9486顯示屏上實(shí)現(xiàn)完整的記事本功能,包含文本輸入、虛擬鍵盤、內(nèi)容清除等核心功能。

一、硬件連接(同電子書教程)

硬件連接方式與電子書閱讀器完全一致,請(qǐng)參考系列教程(一)的硬件連接部分。顯示屏直接插入零知增強(qiáng)板專用接口,無需額外連線。

系列教程直達(dá):零知開源——STM32F4實(shí)現(xiàn)ILI9486顯示屏UI界面系列教程(一):電子書閱讀器功能

ILI9486擴(kuò)展板顯示屏及記事本UI頁面圖:

wKgZPGhahOOAOmqWACUdxV-WDhM491.jpg

二、軟件UI組件實(shí)現(xiàn)

2.1 核心功能實(shí)現(xiàn)

lv_obj_t *win = create_app_win("NotePad");
    lv_coord_t hres = lv_disp_get_hor_res(NULL);
    lv_coord_t vres = lv_disp_get_ver_res(NULL);
    lv_coord_t header_height = 32; // 標(biāo)題欄高度

    // 創(chuàng)建文本區(qū)域
    lv_obj_t *ta = lv_ta_create(win, NULL);
    lv_obj_set_size(ta, hres - 40, (vres - header_height) / 2);
    lv_obj_align(ta, NULL, LV_ALIGN_IN_TOP_MID, 0, header_height + 10);
    lv_ta_set_text(ta, "");
    lv_ta_set_cursor_type(ta, LV_CURSOR_BLOCK);
    lv_ta_set_placeholder_text(ta, "Type your note here...");
    lv_ta_set_sb_mode(ta, LV_SB_MODE_AUTO);

    // 創(chuàng)建鍵盤 - 使用更小的鍵盤節(jié)省空間
    lv_obj_t *kb = lv_kb_create(win, NULL);
    lv_obj_set_size(kb, hres - 40, (vres - header_height) / 3);
    lv_obj_align(kb, ta, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
    lv_kb_set_ta(kb, ta);

    // 創(chuàng)建按鈕容器 - 簡(jiǎn)化按鈕數(shù)量
    lv_obj_t *btn_cont = lv_cont_create(win, NULL);
    lv_cont_set_layout(btn_cont, LV_LAYOUT_ROW_M);
    lv_obj_set_size(btn_cont, hres - 40, 40);
    lv_obj_align(btn_cont, kb, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);

    // 只保留清除按鈕節(jié)省空間
    lv_obj_t *btn_clear = lv_btn_create(btn_cont, NULL);
    lv_obj_t *btn_clear_label = lv_label_create(btn_clear, NULL);
    lv_label_set_text(btn_clear_label, "Clear");
    lv_obj_set_event_cb(btn_clear, note_clear_event_cb);
    lv_obj_set_user_data(btn_clear, ta);

2.2 文本區(qū)域功能詳解

光標(biāo)控制

LV_CURSOR_BLOCK: 塊狀光標(biāo),提高可視性

自動(dòng)光標(biāo)跟蹤:滾動(dòng)時(shí)保持光標(biāo)可見

觸摸精確定位:點(diǎn)擊任意位置移動(dòng)光標(biāo)

滾動(dòng)優(yōu)化

自動(dòng)滾動(dòng)條管理(LV_SB_MODE_AUTO)

平滑滾動(dòng)動(dòng)畫

長(zhǎng)文本分頁渲染

占位提示

引導(dǎo)用戶輸入的提示文本

輸入內(nèi)容時(shí)自動(dòng)消失

內(nèi)容清空后重新顯示

2.3 清除功能實(shí)現(xiàn)

// 清除按鈕事件處理
static void note_clear_event_cb(lv_obj_t * btn, lv_event_t event)
{
    if(event == LV_EVENT_SHORT_CLICKED) {
        lv_obj_t *ta = (lv_obj_t *)lv_obj_get_user_data(btn);
        lv_ta_set_text(ta, "");
    }
}

三、零知IDE配置(同電子書教程)

請(qǐng)參考系列教程(一)的零知IDE配置部分,確保:

正確配置LCD屏幕驅(qū)動(dòng)

啟用觸摸屏支持

添加LVGL庫依賴

關(guān)鍵配置項(xiàng):

#define LV_USE_TA            1
#define LV_USE_KB            1
#define LV_USE_ANIMATION     1    // 啟用動(dòng)畫效果
#define LV_FONT_ROBOTO_16    1    // 啟用默認(rèn)字體

觸摸屏校準(zhǔn):

bool my_touchpad_read(lv_indev_drv_t * indev, lv_indev_data_t * data)
{
        static lv_coord_t last_x = 0;
        static lv_coord_t last_y = 0;
        
        data->state = ts.touched() ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL;
        if(data->state == LV_INDEV_STATE_PR){
                TS_Point p = ts.getPoint();
                 
               
                last_x = LV_HOR_RES-(p.y *LV_HOR_RES)/4095;       
                last_y = (p.x *LV_VER_RES)/4095;       
                 
                Serial.print("touched:");
                Serial.print(last_x);Serial.print(",");Serial.println(last_y);
        }
        data->point.x = last_x;
        data->point.y = last_y;
         
        return false; 
}

四、演示效果

4.1 功能演示

觸摸鍵盤輸入英文內(nèi)容

觸摸文本區(qū)域移動(dòng)光標(biāo)

滑動(dòng)查看長(zhǎng)文本內(nèi)容

點(diǎn)擊清除按鈕清空內(nèi)容

大小寫和符號(hào)鍵盤切換

4.2 視頻效果

https://www.bilibili.com/video/BV1QdKgzjEpe/?spm_id_from=333.1387.homepage.video_card.click&vd_source=a31e3d8d8ce008260eee442534c2f63d

記事本界面包含文本編輯區(qū)、虛擬鍵盤和清除按鈕

4.3 性能指標(biāo)

項(xiàng)目 數(shù)值 說明
鍵盤響應(yīng)時(shí)間 < 50ms 從觸碰到鍵盤彈出的延遲
內(nèi)存占用 32KB 包括LVGL核心和文本緩沖區(qū)
輸入響應(yīng)延遲 < 30ms 按鍵到字符顯示的時(shí)間
最大字符容量 無限制 動(dòng)態(tài)內(nèi)存管理
觸摸精度 ±3像素 鍵盤按鍵觸發(fā)精度

五、常見問題解決

?輸入卡頓/優(yōu)化方法

// 在lv_conf.h中增加內(nèi)存池大小
#define LV_MEM_SIZE (16U* 1024U) // 增加至48KB
#define LV_DISP_DEF_REFR_PERIOD 30 // 降低刷新率至30ms

六、總結(jié)與擴(kuò)展

6.1 實(shí)現(xiàn)總結(jié)

本教程實(shí)現(xiàn)了基礎(chǔ)記事本功能:

文本輸入與編輯功能

虛擬鍵盤輸入支持

一鍵清除內(nèi)容

滾動(dòng)查看長(zhǎng)文本

觸摸優(yōu)化的用戶界面

6.2 擴(kuò)展建議

// 1. 中文輸入支持(需外置字庫)
void init_chinese_font() {
    lv_font_t * cn_font = lv_font_load("S:/fonts/simhei_20.bin");
    static lv_style_t style;
    lv_style_init(&style);
    lv_style_set_text_font(&style, LV_STATE_DEFAULT, cn_font);
    lv_obj_add_style(ta, LV_TEXTAREA_PART_MAIN, &style);
}

// 2. 保存到Flash
void save_to_flash() {
    const char* text = lv_ta_get_text(ta);
    // 使用W25Q128 Flash芯片存儲(chǔ)
    w25qxx_write_str(0x1000, text);
}

// 3. 添加時(shí)間戳
void add_timestamp() {
    char time_str[20];
    sprintf(time_str, "n[%02d:%02d]", rtc.getHours(), rtc.getMinutes());
    lv_ta_add_text(ta, time_str);
}

// 4. 云同步功能
void sync_to_cloud() {
    if(WiFi.status() == WL_CONNECTED) {
        httpClient.post("/api/notes", lv_ta_get_text(ta));
    }
}

6.3 下一步

在下一個(gè)系列教程中,我們將實(shí)現(xiàn)相冊(cè)瀏覽功能,支持圖片預(yù)覽和大圖查看模式。

?零知開源是一個(gè)真正屬于國人自己的開源軟硬件平臺(tái),在開發(fā)效率上超越了Arduino平臺(tái)并且更加容易上手,大大降低了開發(fā)難度。
?零知開源在軟件方面提供了完整的學(xué)習(xí)教程和豐富示例代碼,讓不懂程序的工程師也能非常輕而易舉的搭建電路來創(chuàng)作產(chǎn)品,測(cè)試產(chǎn)品??靵韯?dòng)手試試吧!

?訪問零知開源平臺(tái),獲取更多實(shí)戰(zhàn)項(xiàng)目和教程資源吧!


審核編輯 黃宇

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

    關(guān)注

    29

    文章

    4655

    瀏覽量

    78040
  • STM32F4
    +關(guān)注

    關(guān)注

    3

    文章

    204

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    開源——STM32F4驅(qū)動(dòng)MAX31865實(shí)現(xiàn)PT100高精度測(cè)溫

    材料增強(qiáng)板(STM32F407VET6) MAX31865模塊(支持線制PT100) 線制PT100傳感器 0.96寸I2C OLE
    發(fā)表于 05-26 18:52

    開源——STM32F4實(shí)現(xiàn)ILI9486顯示屏UI界面系列教程(一):電子書閱讀器功能

    教程將詳細(xì)介紹如何在增強(qiáng)板上使用3.5寸ILI9486顯示屏實(shí)現(xiàn)電子書閱讀器
    發(fā)表于 06-24 19:09

    開源——STM32F4實(shí)現(xiàn)ILI9486顯示屏UI界面系列教程(二):日歷功能實(shí)現(xiàn)

    ——STM32F4實(shí)現(xiàn)ILI9486顯示屏UI界面系列
    發(fā)表于 06-25 17:51

    開源——STM32F4實(shí)現(xiàn)ILI9486顯示屏UI界面系列教程():記事本功能實(shí)現(xiàn)

    在智能設(shè)備的人機(jī)交互界面中,記事本功能是基礎(chǔ)且重要的應(yīng)用場(chǎng)景。教程將基于STM32F4和LVGL庫,在3.5英寸
    發(fā)表于 06-27 09:51

    開源——STM32F4實(shí)現(xiàn)ILI9486顯示屏UI界面系列教程(四):相冊(cè)預(yù)覽和大圖功能

    與電子書閱讀器完全一致,請(qǐng)參考系列教程(一)的硬件連接部分。顯示屏直接插入增強(qiáng)板專用接口,無需額外連線。系列教程直達(dá):
    發(fā)表于 06-30 09:13

    關(guān)于用STC52芯片單片機(jī)實(shí)現(xiàn)英文記事本功能

    本人小白,課程要求制作一個(gè)單片機(jī)開發(fā)板并實(shí)現(xiàn)一個(gè)英文記事本,現(xiàn)在板做好了,但是關(guān)于程序編寫沒有什么思路,希望大神們可以指點(diǎn)指點(diǎn),最好給點(diǎn)程序哈哈,因?yàn)闆]什么思路了,下面是設(shè)計(jì)要求:1、開機(jī)密碼設(shè)置
    發(fā)表于 12-06 18:20

    利用stm32F4驅(qū)動(dòng)攝像頭在ILI9341顯示屏顯示畫面

    (本文建立在對(duì)OV7725有一定了解的基礎(chǔ)上)我的目的很簡(jiǎn)單,就是利用stm32F4 驅(qū)動(dòng)攝像頭在我的ILI9341顯示屏(240*320分辨率)上顯示畫面。把我手頭上的器件圖先給出把
    發(fā)表于 08-03 07:04

    如何利用stm32F4驅(qū)動(dòng)攝像頭在ILI9341顯示屏顯示畫面

    如何利用stm32F4驅(qū)動(dòng)攝像頭在ILI9341顯示屏顯示畫面?
    發(fā)表于 10-11 09:25

    TFTLCD液晶顯示屏芯片ILI9486L的數(shù)據(jù)手冊(cè)免費(fèi)下載

    的320RGBX480點(diǎn)圖形數(shù)據(jù)包和電源電路。ILI9486L支持并行CPU 8-/9-/16-/18位數(shù)據(jù)總線接口和3-/4線串行外圍接口(SPI)。ILI9486L還兼容用于視頻圖像顯示
    發(fā)表于 10-10 08:00 ?65次下載
    TFTLCD液晶<b class='flag-5'>顯示屏</b>芯片<b class='flag-5'>ILI9486</b>L的數(shù)據(jù)手冊(cè)免費(fèi)下載

    TFT3.5 ILI9486彩屏電路原理圖免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是TFT3.5 ILI9486彩屏電路原理圖免費(fèi)下載。
    發(fā)表于 03-05 08:00 ?37次下載
    TFT3.5 <b class='flag-5'>ILI9486</b>彩屏電路原理圖免費(fèi)下載

    AWTK 開源串口開發(fā)(12) - 記事本應(yīng)用

    傳統(tǒng)的的串口中,開發(fā)一個(gè)記事本應(yīng)用,即使可能,也是非常麻煩的事情。在AWTK串口中,內(nèi)置文件模型和文件選擇對(duì)話框,實(shí)現(xiàn)一個(gè)簡(jiǎn)單的記事本,
    的頭像 發(fā)表于 03-09 08:23 ?792次閱讀
    AWTK <b class='flag-5'>開源</b>串口<b class='flag-5'>屏</b>開發(fā)(12) - <b class='flag-5'>記事本</b>應(yīng)用

    如何在Windows 11恢復(fù)舊版記事本

    據(jù)了解,Microsoft于今年二月對(duì)Windows 11的兩大應(yīng)用程序——記事本與媒體播放器做出更新,引入了新的UI設(shè)計(jì)和增強(qiáng)功能。然而仍有部分用戶偏愛老版本的應(yīng)用。
    的頭像 發(fā)表于 03-28 10:21 ?2523次閱讀

    開源——STM32F4實(shí)現(xiàn)ILI9486顯示屏UI界面系列教程(二):日歷功能實(shí)現(xiàn)

    教程詳細(xì)介紹了基于STM32F4ILI9486觸摸的日歷應(yīng)用開發(fā),涵蓋硬件連接、軟件實(shí)現(xiàn)
    的頭像 發(fā)表于 06-25 17:34 ?384次閱讀
    <b class='flag-5'>零</b><b class='flag-5'>知</b><b class='flag-5'>開源</b>——<b class='flag-5'>STM32F4</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>ILI9486</b><b class='flag-5'>顯示屏</b><b class='flag-5'>UI</b><b class='flag-5'>界面</b><b class='flag-5'>系列</b>教程(二):日歷<b class='flag-5'>功能</b><b class='flag-5'>實(shí)現(xiàn)</b>

    開源——STM32F4實(shí)現(xiàn)ILI9486顯示屏UI界面系列教程(四):相冊(cè)預(yù)覽和大圖功能

    教程詳細(xì)講解如何在LVGL中實(shí)現(xiàn)相冊(cè)預(yù)覽和圖片放大功能。通過事件回調(diào)、窗口管理和圖片取模技術(shù),構(gòu)建流暢的用戶體驗(yàn)。主要內(nèi)容包括:硬件連接方式(與電子書教程相同)、軟件UI組件
    的頭像 發(fā)表于 06-27 12:01 ?423次閱讀
    <b class='flag-5'>零</b><b class='flag-5'>知</b><b class='flag-5'>開源</b>——<b class='flag-5'>STM32F4</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>ILI9486</b><b class='flag-5'>顯示屏</b><b class='flag-5'>UI</b><b class='flag-5'>界面</b><b class='flag-5'>系列</b>教程(四):相冊(cè)預(yù)覽和大圖<b class='flag-5'>功能</b>

    開源——STM32F4結(jié)合BMP581氣壓傳感器實(shí)現(xiàn)ST7789中文顯示教程

    開源平臺(tái)是一個(gè)專為國開發(fā)者設(shè)計(jì)的軟硬件開源平臺(tái),提供比Arduino更易上手的開發(fā)體驗(yàn)。教程展示了如何在
    的頭像 發(fā)表于 07-09 09:21 ?719次閱讀
    <b class='flag-5'>零</b><b class='flag-5'>知</b><b class='flag-5'>開源</b>——<b class='flag-5'>STM32F4</b>結(jié)合BMP581氣壓傳感器<b class='flag-5'>實(shí)現(xiàn)</b>ST7789中文<b class='flag-5'>顯示</b>教程