biubiu 发布的帖子
-
手机连接R128的热点不稳定
使用R128的AP模式打开热点之后,电脑连接之后可以稳定使用,但是手机连接会不稳定,一直处于 “连接成功-断开-连接成功-断开...” 的状态,安卓和苹果手机都是这样。
-
回复: 移植NWatch到R128 DevKit
最新进度
- 优化屏幕刷新,显示更流畅
- 添加蜂鸣器、旋转编码器、DHT11温湿度传感器。
蜂鸣器工作正常;旋转编码器与红外遥控可自由切换;在默认表盘的右下角显示DHT11采集的温湿度信息。
源码
- Gitee: https://gitee.com/weidongshan/100ask_r128_demos
- GitHub: https://github.com/100askTeam/100ask_r128_demos
下一步计划
编写文档
-
r128的hal_spi测试发送有问题
使用用test_spi示例,发现只发送一个字节的数据是没问题的,但是发送超过1个字节的数据没反应了:
发送一个字节的数据就没问题:
发送多个的时候就卡住了:
-
移植NWatch到R128 DevKit
说明
灵感来源于百问网最近发布的NWatch项目,但是他们的是在STM32板子上运行,刚好可以将其移植到R128上作为练手项目。百问网NWatch效果演示: https://www.bilibili.com/video/BV1Rw411r7kb
项目功能
功能列表:
- 显示(SSD1306)
- 红外控制
- 编码器控制
- 蜂鸣器
- LED状态灯
- DHT11温湿度采集显示
- FLASH存储
- 恢复设置
- more todo
源码仓库
TODO
运行效果
-
回复: R128驱动SD卡失败
@awwwwa 我这试了四张卡,只有这张可以:
输出log:
c906> c906>card_detect insert sdmmc_test->card_id=0 card id is 0 SD:mmc_card_create card:00000000084601D0 id:0 card debug mask 3c SDC:Not implement __mci_restore_io,838 HAL_GetHFClock,53 Warning Use fix value 24000000 HAL_GetHFClock,53 Warning Use fix value 24000000 HAL_GetHFClock,53 Warning Use fix value 24000000 SDC:SDC clock=416666 kHz,src:0, n:2, m:11 HAL_GetHFClock,53 Warning Use fix value 24000000 HAL_GetHFClock,53 Warning Use fix value 24000000 HAL_GetHFClock,53 Warning Use fix value 24000000 SDC:SDC clock=416666 kHz,src:0, n:2, m:11 [ERR] SDC:__mci_irq_handler,924 raw_int:100 err! [ERR] SDC:SDC err, cmd 52, RTO [ERR] SDC:sdc 701 abnormal status: RespErr [ERR] SDC:__mci_irq_handler,924 raw_int:100 err! [ERR] SDC:SDC err, cmd 52, RTO [ERR] SDC:sdc 701 abnormal status: RespErr SD:***** Try sdio ***** [ERR] SDC:__mci_irq_handler,924 raw_int:100 err! [ERR] SDC:SDC err, cmd 5, RTO [ERR] SDC:sdc 701 abnormal status: RespErr SD:***** Try sd ***** mmc_send_app_op_cond,89 SD:card ocr: c0ff8000 SD:Card CID number:27504853 SD:card raw cid: SD:card raw csd: m:59159, e:2, dtr:25000000, cl:1461, len:9, cap:60579840 str:1 SD:card raw scr: SD:card raw SD status: HAL_GetHFClock,53 Warning Use fix value 24000000 HAL_GetDevClock,90 Warning Use fix value 192000000 HAL_GetDevClock,90 Warning Use fix value 192000000 SDC:SDC clock=48000000 kHz,src:1, n:0, m:1 SD:card is switched to high speed mode, clk:50000 KHz SD:Set bus width type: 2 SD: ============= card information ============== SD:Card Type : SDHC SD:Card Spec Ver : 5.0 SD:Card RCA : 0x5048 SD:Card OCR : 0x40ff8000 SD: vol_window : 0x00ff8000 SD: to_1v8_acpt : 0 SD: high_capac : 0 SD:Card CSD : SD: speed : 50000 KHz SD: cmd class : 0x5b5 SD: capacity : 29580MB SD:Card CUR_STA : SD: speed_mode : HS: 50 MHz SD: bus_width : 2 SD: speed_class : 10 SD:============================================= SD:***** sd init ok ***** Initial card success mount successully
-
回复: 为 LVGL 添加截图/截屏功能(lv_100ask_screenshot)
@whycan lv_100ask_screenshot是基于v8写的,我在codeblocks(测试bpp32和bpp16)和linux板子上(RGB屏bpp32)测试过,我微信发你codeblocks和linux fb的工程?
-
为 LVGL 添加截图/截屏功能(lv_100ask_screenshot)
完整的演示视频观看: https://www.bilibili.com/video/BV18r4y1X7MJ
前言
lv_100ask_screenshot 是一个基于 lvgl 的屏幕截图工具。
lv_100ask_screenshot 特性:
- 可以将LVGL的屏幕对象(全屏)保存为图片文件:lv_scr_act(),layer_sys(),layer_top()
- 可以将指定的LVGL对象及其子对象截取保存为图片文件
- 可以将截图保存为:BMP、PNG、JPG
- more todo...
lv_100ask_screenshot
使用起来非常简单,后续自定义拓展功能也很方便,更多新功能敬请期待。使用方法
参考 lv_lib_100ask/test/lv_100ask_screenshot_test 的示例。
获取 lv_100ask_screenshot 源码
- Github: https://github.com/100askTeam/lv_lib_100ask/tree/master/src/lv_100ask_screenshot
- Gitee: https://gitee.com/weidongshan/lv_lib_100ask/tree/master/src/lv_100ask_screenshot
尝试lv_100ask_screenshot
我使用codeblocks创建了两个可执行程序,可以直接在windows上运行。需要注意的是,截图保存的位置是 D 盘根目录。
-
电子书阅读器轻松搞定!轻便且多功能的LVGL文本阅读器(lv_100ask_text_reader)
lv_100ask_text_reader
特性
- 资源消耗低、轻便小巧
- 支持打开任意大小的文本文件
- 支持跳转到任意页面
- 支持改变阅读字体
- 支持获取阅读数据,以便下次打开时恢复阅读
- more todo...
源码
lv_100ask_text_reader接口:
/********************** * GLOBAL PROTOTYPES **********************/ lv_obj_t * lv_100ask_text_reader_create(lv_obj_t * parent); /*===================== * Setter functions *====================*/ void lv_100ask_text_reader_set_file(lv_obj_t * obj, const char * file_name); /*===================== * Getter functions *====================*/ lv_obj_t * lv_100ask_text_reader_get_label(lv_obj_t * obj); uint32_t lv_100ask_text_reader_get_total_pages(lv_obj_t * obj); uint32_t lv_100ask_text_reader_get_current_page(lv_obj_t * obj); /*===================== * Other functions *====================*/ bool lv_100ask_text_reader_open_next_page(lv_obj_t * obj); bool lv_100ask_text_reader_open_previous_page(lv_obj_t * obj); bool lv_100ask_text_reader_goto_page(lv_obj_t * obj, uint32_t page);
目前正在将(lv_100ask_text_reader)应用在DShanMCU-Mio的电子纸阅读器上,当我完成之后会向大家分享我的代码 (预计这两周之内完成) :
希望大家喜欢这个项目!:)
-
05_使用DongshanPi-D1s开发板基于melis4.0使用spi墨水屏
配置
执行
make menuconfig
进入到> Kernel Setup > Subsystem support > 100ASK Components Support --->
打开[*] SPI E-paper display Test
:编译打包
然后执行
make -j8 && pack
进行编译。烧写
使用全志官方 PhoenixSuit 烧写烧写上一步编译打包好的镜像文件
melis_d1s-nezha_uart0_8Mnor.img
烧写工具使用参考: https://dongshanpi.com/DongshanNezhaSTU/03-QuickStart/#spi-nand
接线
查看
D1s-Melis/ekernel/subsys/melis-learn/05_spi_epd_test/README.md
了解如何接线。运行现象
确保接线无误之后,我们进入到 DongshanPi-D1s 的串口控制台,执行
help
命令,将会看到最后面多出了一个命令选项:msh /> help ... ... 100ask_test_spi_epd - Code to spi E-paper display test
执行
100ask_test_spi_epd
,将会看到屏幕将会依次全屏刷新显示 黑、白 两种颜色:msh />100ask_test_spi_epd
SPI E-paper display: https://item.taobao.com/item.htm?id=683875901407
TODO. 这里有一个问题,按照程序理想的现象应该是这样:依次全屏刷新显示 黑、白 两种颜色,然后全屏刷新一张图片,最后局部刷新十次。如果你解决了问题,非常期待你的分享!
查看源码
源码位于:
D1s-Melis/ekernel/subsys/melis-learn/05_spi_epd_test
教程导航
-
04_使用DongshanPi-D1s开发板基于melis4.0使用spi tftlcd屏幕
配置
执行
make menuconfig
进入到> Kernel Setup > Subsystem support > 100ASK Components Support --->
打开[*] SPI LCD Test
:编译打包
然后执行
make -j8 && pack
进行编译。烧写
使用全志官方 PhoenixSuit 烧写烧写上一步编译打包好的镜像文件
melis_d1s-nezha_uart0_8Mnor.img
烧写工具使用参考: https://dongshanpi.com/DongshanNezhaSTU/03-QuickStart/#spi-nand
接线
查看
D1s-Melis/ekernel/subsys/melis-learn/04_spi_lcd_test/README.md
了解如何接线。运行现象
确保接线无误之后,我们进入到 DongshanPi-D1s 的串口控制台,执行
help
命令,将会看到最后面多出了一个命令选项:msh /> help ... ... 100ask_test_spi_lcd - Code to spi lcd test
执行
100ask_test_spi_lcd
,将会看到屏幕将会一次全屏刷新显示 红、绿、蓝、白 四种颜色:msh />100ask_test_spi_lcd
SPI tft lcd屏幕: https://item.taobao.com/item.htm?id=683875901407
查看源码
源码位于:
D1s-Melis/ekernel/subsys/melis-learn/04_spi_lcd_test
教程导航
- 00_使用DongshanPi-D1s开发板学习melis4.0开发
- 01_使用DongshanPi-D1s开发板基于melis4.0点亮LED灯
- 02_使用DongshanPi-D1s开发板基于melis4.0通过按键点亮LED
- 03_使用DongshanPi-D1s开发板基于melis4.0使用fc手柄
- 04_使用DongshanPi-D1s开发板基于melis4.0使用spi tftlcd屏幕
- 05_使用DongshanPi-D1s开发板基于melis4.0使用spi墨水屏
-
03_使用DongshanPi-D1s开发板基于melis4.0使用fc手柄
配置
执行
make menuconfig
进入到> Kernel Setup > Subsystem support > 100ASK Components Support --->
打开[*] Fc joypad Test
:编译打包
然后执行
make -j8 && pack
进行编译。烧写
使用全志官方 PhoenixSuit 烧写烧写上一步编译打包好的镜像文件
melis_d1s-nezha_uart0_8Mnor.img
烧写工具使用参考: https://dongshanpi.com/DongshanNezhaSTU/03-QuickStart/#spi-nand
接线
查看
D1s-Melis/ekernel/subsys/melis-learn/03_fc_joypad_test/README.md
了解如何接线。运行现象
确保接线无误之后,我们进入到 DongshanPi-D1s 的串口控制台,执行
help
命令,将会看到最后面多出了一个命令选项:msh /> help ... ... 100ask_test_fc_joypad - Code to fc joypad test
执行
100ask_test_fc_joypad
,按下手柄上的按钮,控制台将会告诉你按下的是哪一个按钮:msh />100ask_test_fc_joypad Key FC_JOYPAD_BTN_A is pressed! Key FC_JOYPAD_BTN_B is pressed! Key FC_JOYPAD_BTN_START is pressed! Key FC_JOYPAD_BTN_SELECT is pressed! Key FC_JOYPAD_BTN_UP is pressed! Key FC_JOYPAD_BTN_DOWN is pressed! Key FC_JOYPFC_JOYPAD_BTN_LEFT is pressed! Key FC_JOYPAD_BTN_RIGHT is pressed! Key FC_JOYPAD_BTN_B is pressed! ......
查看源码
源码位于:
D1s-Melis/ekernel/subsys/melis-learn/03_fc_joypad_test
教程导航
-
02_使用DongshanPi-D1s开发板基于melis4.0通过按键点亮LED
配置
执行
make menuconfig
进入到> Kernel Setup > Subsystem support > 100ASK Components Support --->
打开[*] Button Test
:编译打包
然后执行
make -j8 && pack
进行编译。烧写
使用全志官方 PhoenixSuit 烧写烧写上一步编译打包好的镜像文件
melis_d1s-nezha_uart0_8Mnor.img
烧写工具使用参考: https://dongshanpi.com/DongshanNezhaSTU/03-QuickStart/#spi-nand
接线
查看
D1s-Melis/ekernel/subsys/melis-learn/02_button_test/README.md
了解如何接线。运行现象
确保接线无误之后,我们进入到 DongshanPi-D1s 的串口控制台,执行
help
命令,将会看到最后面多出了两个命令选项:msh /> help ... ... 100ask_test_button_switch - Code to Control LED light through button(switch) 100ask_test_button - Code to monitor button status
执行
100ask_test_button
,按下我们的按钮将会看到LED被点亮,松开按钮LED熄灭:msh />100ask_test_button
执行
100ask_test_button_switch
,按下我们的按钮将会看到LED被点亮,松开后再按一次按钮LED熄灭:msh />100ask_test_button_switch
查看源码
源码位于:
D1s-Melis/ekernel/subsys/melis-learn/02_button_test
教程导航
-
01_使用DongshanPi-D1s开发板基于melis4.0点亮LED灯
配置
执行
make menuconfig
进入到> Kernel Setup > Subsystem support > 100ASK Components Support --->
打开[*] LED Test(control/blink led)
:编译
然后执行
make -j8 && pack
进行编译。烧写
使用全志官方 PhoenixSuit 烧写烧写上一步编译打包好的镜像文件
melis_d1s-nezha_uart0_8Mnor.img
烧写工具使用参考: https://dongshanpi.com/DongshanNezhaSTU/03-QuickStart/#spi-nand
接线
查看
D1s-Melis/ekernel/subsys/melis-learn/01_led_test/README.md
了解如何接线。运行现象
确保接线无误之后,我们进入到 DongshanPi-D1s 的串口控制台,执行
help
命令,将会看到最后面多出了一个命令选项:msh /> help ... ... 100ask_test_blink_led - Code to blink LED
继续执行
100ask_test_blink_led
,将会看到LED被点亮并且闪烁起来,我们可以指定闪烁的的频率:msh />100ask_test_blink_led uasge : 100ask_blink_led [time(ms)], eg:100ask_blink_led 500 msh />100ask_test_blink_led 500 before pull state : 3, dir : 7, data :0x0 after pull state : 3, dir : 1, data :0x0 msh />
查看源码
源码位于:
D1s-Melis/ekernel/subsys/melis-learn/01_led_test
教程导航
-
00_使用DongshanPi-D1s开发板学习melis4.0开发
前言
全志Melis 操作系统是由全志科技自主研发的一套精简、高效、易用的实时多任务操作系统,有着完善的内存管理、模块管理、中断管理、时钟管理、设备管理以及功耗管理。开发者可以基于 Melis 操作系统规划自己的方案,自由地开发应用程序和扩展设备驱动。
本系列教程基于 DongshanPi-D1s 开发板以及 melis4.0 编写。
配置开发环境
进入到下面git仓库的页面,查看 README 文档,了解如何在 DongshanPi-D1s 上运行全志 Melis RTOS 系统。
上面的 README 文档中有详细的教程,当你能编译出镜像并且成功烧写运行之后,获取教程的学习资料并准备好:
- 教程资料仓库地址: https://github.com/100askTeam/melis-learn
- 或者直接点击这里下载压缩包:
建议 clone git 仓库,便于后续获取最新版本。
仓库中的 README.md 文档有详细的教程,我们只需要先将
melis-learn
目录放在melis4.0/ekernel/subsys/
的目录下,然后按照 README.md 文档的说明操作即可。注意,放在
melis4.0/ekernel/subsys/
的目录下必须是melis-learn
命名的文件夹,不可以是比如melis-learn-master
,除非你了解怎么适配。到此位置,我们已经将所有的准备工作做好了,下面我们一起来看看后面更多的教程吧!
教程导航
-
回复: 基于 lvgl 实现的简洁、通用、轻量级的文件浏览器
lv_100ask_file_explorer已合入LVGL主线仓库。
深入了解:
- lvgl官方文档地址(有中文):https://docs.lvgl.io/master/others/file_explorer.html
- lvgl仓库源码地址:https://github.com/lvgl/lvgl/tree/master/src/others/file_explorer
- PR:https://github.com/lvgl/lvgl/pull/3601
lv_100ask_file_explorer原仓库地址:
-
lv_100ask_file_explorer已合入LVGL主线仓库,从lvgl v9.0开始可以使用文件浏览器组件啦!
深入了解:
- lvgl官方文档地址(有中文):https://docs.lvgl.io/master/others/file_explorer.html
- lvgl仓库源码地址:https://github.com/lvgl/lvgl/tree/master/src/others/file_explorer
- PR:https://github.com/lvgl/lvgl/pull/3601
lv_100ask_file_explorer原仓库地址:
-
回复: LVGL+NES模拟器
@yuzukitsuru 最新进展,在T113上流畅运行,调色板还是有点问题,后面再慢慢调整,效果:
项目仓库将会更新(预计这周之内提交)在 lv_lib_100ask:https://gitee.com/weidongshan/lv_lib_100ask
演示视频
-
回复: LVGL+NES模拟器
@bedrock 最新进展,在T113上流畅运行,调色板还是有点问题,后面再慢慢调整,效果:
项目仓库将会更新(预计这周之内提交)在 lv_lib_100ask:https://gitee.com/weidongshan/lv_lib_100ask
演示视频
-
回复: LVGL+NES模拟器
最新进展,在T113上流畅运行,调色板还是有点问题,后面再慢慢调整,效果:
项目仓库将会更新(预计这周之内提交)在 lv_lib_100ask:https://gitee.com/weidongshan/lv_lib_100ask
演示视频
-
基于 lvgl 实现的简洁、通用、轻量级的文件浏览器
介绍
lv_100ask_file_explorer 是一个基于 lvgl 的简洁、通用的文件浏览器的轻量级实现。
lv_100ask_file_explorer_simple_test_v1.zip
特性
lv_100ask_file_explorer 特性:
- 轻量级、简洁、可拓展性强
- 快速访问栏可裁剪
- 自定义样式风格
- more todo...
lv_100ask_file_explorer
使用起来非常简单,后续自定义拓展功能也很方便,更多新功能敬请期待!使用方法
参考 lv_lib_100ask/test/lv_100ask_file_explorer 的示例。
项目仓库
-
LVGL拼音输入法插件(lv_100ask_pinyin_ime)
演示视频:https://www.bilibili.com/video/BV1DY41147xX
介绍
lv_100ask_pinyin_ime
是在 lv_keyboard 的基础上编写的一个自定义部件(创建接口为:lv_100ask_pinyin_ime_create(lv_obj_t *parent));
),它和 lv_keyboard 没有什么区别,只是增加了支持中文拼音输入法的功能。所以将其称为:支持中文拼音输入法的LVGL键盘(lv_keyboard)部件增强插件。
正常来说,只要是lvgl能运行的环境
lv_100ask_pinyin_ime
也能够运行!影响因素主要有两点:使用的字库文件大小和使用的词库大小。lv_100ask_pinyin_ime
使用起来非常简单,后续自定义拓展功能也很方便,更多功能敬请期待。lv_100ask_pinyin_ime特性:
- 资源占用低
- 支持自定义词库
- 支持自定义样式(候选栏、键盘)
- 支持简拼
- 支持双拼(TODO)
- 可加载词库文件(TODO)
- 自动更新词库(TODO)
- 九宫格模式(TODO)
使用方法
参考 lv_lib_100ask/test/lv_100ask_pinyin_ime_test 的示例。
自定义词库
如果不想使用内置的拼音词库,可以使用自定义的词库。
或者觉得内置的拼音词库消耗的内存比较大,也可以使用自定义的词库。自定义词库非常简单。
- 首先,在
lv_lib_100ask_conf.h
中将LV_100ASK_PINYIN_IME_ZH_CN_PIN_YIN_DICT
设置为0
- 然后,按照下面这个格式编写词库。
词库格式
必须按照下面的格式,编写自己的词库:
lv_100ask_pinyin_dict_t your_pinyin_dict[] = { { "a", "啊阿呵吖" }, { "ai", "埃挨哎唉哀皑蔼矮碍爱隘癌艾" }, { "ba", "芭捌叭吧笆八疤巴拔跋靶把坝霸罢爸扒耙" }, { "cai", "猜裁材才财睬踩采彩菜蔡" }, /* ...... */ { "zuo", "昨左佐做作坐座撮琢柞"}, {NULL, NULL}
最后一项必须要以 '{NULL, NULL}' 结尾,否则将无法正常工作。
应用新词库
按照上面的词库格式编写好词库之后,只需要调用这个函数即可设置使用你的词库:
lv_obj_t * pinyin_ime = lv_100ask_pinyin_ime_create(lv_scr_act()); lv_100ask_pinyin_ime_set_dict(pinyin_ime, your_pinyin_dict);
注意: 必须在设置好词库之后再使用
lv_100ask_pinyin_ime
模拟器体验
基于codeblocks 20.03+windows10编译:lv_100ask_pinyin_ime_beta-v2.0.zip
代码
github: https://github.com/100askTeam/lv_lib_100ask/tree/master/src/lv_100ask_pinyin_ime
gitee: https://gitee.com/weidongshan/lv_lib_100ask/tree/master/src/lv_100ask_pinyin_ime
参考
-
使用lvgl编写的2048小游戏(lv_lib_100ask_2048)
lv_lib_100ask_2048
介绍
lv_100ask_2048 特性:
自定义大小
支持触摸手势控制(上、下、左、右滑动)
支持按键控制(LV_KEY_UP、LV_KEY_DOWN、LV_KEY_LEFT、LV_KEY_RIGH)
获取游戏分数
获取游戏状态
获取当前合成的最好方块
开始新的游戏
more todo...
lv_100ask_2048 使用起来非常简单,后续自定义拓展功能也很方便,更多新功能敬请期待。代码
-
回复: 【XR806官方开发板入门】openHarmony编译与烧录
你好,我按照你的文档操作,最后build的时候出现了下图的,不知道如何解决,期待你的回复!
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号