自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸟攻城狮

路漫漫其修远兮,吾将上下而求索。。。

  • 博客(76)
  • 资源 (25)
  • 收藏
  • 关注

原创 日常代码记录之Linux下的strftime

【代码】日常代码记录之Linux下的strftime。

2024-03-04 11:18:01 209

原创 日常代码记录之gettimeofday

【代码】日常代码记录之gettimeofday。

2024-03-04 10:26:03 68

原创 日常代码记录之fprintf和fscanf

【代码】日常代码记录之fprintf和fscanf。

2024-03-04 10:18:19 72

原创 日常代码记录之vsnprintf使用

【代码】日常代码记录之vsnprintf使用。

2024-03-04 10:04:06 112

原创 LVGL V8自定义实现radio button

这几天由于开发任务的需要,需要自定义实现一个radio button的功能,所以通过研究button添加LV_OBJ_FLAG_CHECKABLE属性实现了一个简单的radio button,下面直接上代码。

2023-04-04 15:49:57 1281 1

原创 LVGL V8之color selector

LVGL V8实现color selector色选器

2022-12-07 16:53:37 840

原创 C语言实现通用链表

C语言实现通用链表

2022-10-19 10:17:13 1003 3

原创 获取嵌入式Linux设备下的触摸设备节点

这两天在搞嵌入式设备下的触摸屏,有一个需求是动态获取触摸设备,废话不说直接上代码:#include <stdio.h>#include <sys/types.h>#include <dirent.h>#include <linux/input.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <string

2022-04-14 12:11:34 3488

原创 LVGL V8学习之键盘按键样式重绘(二)

这一篇继续研究一下基于btnmatrix的键盘按键重绘,是对上一篇LVGL V8学习之键盘按键样式重绘(一)的代码的优化,还是通过codeblock来模拟代码的运行,代码如下:// 按键矩阵的事件回调函数static void btnmatrix_event_callback(lv_event_t * event){ if (event == NULL) { printf("[%s:%d] event is NULL\n", __FUNCTION__, __LINE

2022-03-07 18:12:00 3867 1

原创 LVGL V8学习之进度条(bar控件)

这一篇来研究下LVGL V8下进度条(bar控件)的使用,还是通过codeblock来模拟代码的运行// bar对象动画回调函数static void obj_bar_anim_exec_callback(void * bar, int32_t value){ if (bar != NULL) { lv_bar_set_value((lv_obj_t *)bar, value, LV_ANIM_ON); // 设置进度条对象的值

2022-03-07 15:11:48 4067 5

原创 C语言动态分配内存实现字符串格式化拼接

C语言动态分配内存实现字符串格式化拼接

2022-01-12 16:24:26 847

原创 LVGL V8学习之colorwheel色轮

这一篇来研究下LVGL V8下colorwheel色轮的使用,这个色轮是HSV样式的,下面的代码通过创建色轮对象,然后添加对象事件处理,移动旋钮,显示对应的颜色和RGB值还是通过codeblock来模拟代码的运行,代码如下:// 事件回调函数static void colorwheel_event_callback(lv_event_t * event){ if (event == NULL) { printf("[%s:%d] event is NULL\n"

2022-01-05 10:32:58 1684 6

原创 LVGL V8下png图片缩放显示

这几天在研究LVGL V8下显示png图片和缩放问题1、软件硬件环境SSD202D平台Linux系统2、相关依赖库相关依赖的库主要包含lv_lib_png和lodepng下载链接:lv_lib_png3、相关代码这里主要是演示从文件加载显示png图片,并缩放显示,主要是使用lv_img_set_zoom这个接口实现缩放显示,以下是关键代码// img对象设置png图片自适应显示static void lv_obj_img_png_set_zoom(lv_

2021-11-15 20:25:20 7073 7

原创 SSD202D平台使用libjpeg和lodepng将jpg图片转换成rgb888格式的png图片

今天在研究SSD202D平台使用libjpeg和lodepng将jpg图片转换成rgb88格式的png图片,分享一下研究的结果:1、准备工作下载libjpeg:libjpeg这里使用的jpegsrc.v9.tar.gz下载lodepng:lodepng2、相关代码jpeg_transfer.h#ifndef _JPEG_TRANSFER_H#define _JPEG_TRANSFER_H#ifdef __cplusplusextern "C"{#endif.

2021-11-11 18:15:42 1680

原创 SSD202D平台使用lodepng生成png图片

这两天在研究SSD202D平台上的png图片显示,下面分享 一下使用lodepng生成png图片1、准备工作下载lodepng源码:https://github.com/lvandeve/lodepnglodepng官网:LodePNG2、相关代码:lodepng_demo.c#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdint.h>#

2021-11-11 17:41:12 523

原创 渐进式jpg转换成基线式 jpg

最近在搞SSD202D平台的jpeg图片显示,发现progressive jpeg无法显示,于是就用libjpeg库progressive jpeg转换成baseline jpg首先说下这两种格式的区别:PEG有两种存储格式:baseline和progressive。Baseline JPEG 会在数据可用时,一行一行自上而下显示。Progressive JPEG会先显示模糊图片,然后逐渐清晰。两种格式有相同尺寸以及图像数据,他们的扩展名也是相同的,唯一的区别是二者显示的方式不同。B..

2021-11-09 16:33:49 873

原创 LVGL V8学习之键盘按键样式重绘(一)

这一篇研究一下基于btnmatrix的键盘按键重绘,还是通过codeblock来模拟代码的运行,代码如下:static const char * kb_map[] ={ "1","2", "3","\n", "4", "5", "6", "\n", "7", "8", "9" ,"\n", ".","0",LV_SYMBOL_BACKSPACE,""};static void textarea_event_callback(lv_event_t * event){ if (

2021-09-07 18:30:23 2529 3

原创 LVGL8之自定义密码输入键盘

这一篇研究一下自定义密码输入键盘,还是通过codeblock来模拟代码的运行,代码如下:#include <stdio.h>#include <string.h>#include "lvgl/lvgl.h"#include "lv_gui_password_keyboard.h"static lv_obj_t *pwd_main_cont = NULL; // 密码输入界面的容器static lv_obj_t *hint_label = NULL; // 密码提示

2021-09-03 16:53:02 4651 3

原创 LVGL8的窗口切换方式

LVGL8实现两个窗口的切换方式:方法一:切换到窗口2时,删除窗口1的容器,这样可以删除窗口1下的所有子对象,这种方式适用于运存较小的设备方法二:显示窗口1之前给窗口2的容器设置LV_OBJ_FLAG_HIDDEN隐藏属性,显示窗口2之前给窗口1的容器设置LV_OBJ_FLAG_HIDDEN隐藏属性还是通过codeblock来模拟代码的运行,代码如下:#define HIDDEN_WIN (0)static lv_obj_t *win1_contanier = NULL;static

2021-08-27 19:36:02 14496 16

原创 LVGL8学习之msgbox

这一篇来演示一下lvgl8下msgbox的使用,还是通过codeblock来模拟代码的运行,代码如下:static void msgbox_event_callback(lv_event_t * event){ lv_event_code_t code = lv_event_get_code(event); lv_obj_t * msgbox = lv_event_get_current_target(event); if ((code == LV_EVENT_VALUE_

2021-08-27 17:30:03 2381

原创 LVGL8学习之Grid(简单网格布局)

这一篇来学习一下简单的网格布局grid,主要的步骤如下:(1)创建对象,给对象添加网格布局还是通过codeblock来模拟代码的运行,代码如下:void lv_layout_simple_grid(){ // 定义行和列描述符的数组,数组的最后一个元素必须是LV_GRID_TEMPLATE_LAST static lv_coord_t col_dsc[] = {70, 70, 70, LV_GRID_TEMPLATE_LAST}; // 3行,分别为:70,70,70 像

2021-08-27 15:29:42 3694 1

原创 LVGL8学习之flex grow(弹性增长)

这一篇来学习一下flex grow(弹性增长),还是通过codeblock来模拟代码的运行,代码如下:void lv_demonstrate_flex_grow(){ lv_obj_t * cont = lv_obj_create(lv_scr_act()); // 基于屏幕创建一个cont容器对象 if (cont == NULL) { return; } lv_obj_set_size(cont, 400, 220); // 设置对象大小

2021-08-27 14:37:41 2118

原创 LVGL8制作简易时钟

通过这两天对LVGL8的部分控件和样式的学习,自己制作了一个简易时钟,可显示时间,日期,星期,用到的主要有样式,布局等对象typedef struct _lv_clock{ lv_obj_t *time_label; // 时间标签 lv_obj_t *date_label; // 日期标签 lv_obj_t *weekday_label; // 星期标签}lv_clock_t;static void clock

2021-08-27 13:20:10 10004 11

原创 LVGL8学习之Flex布局2

这一篇来学习Flex布局的把项目按行包裹,且让他们周围的控件平均。(Arrange items in rows with wrap and even spacing),还是通过codeblock来模拟代码的运行,代码如下:void lv_flex_layout_test2(){ static lv_style_t style; lv_style_init(&style); // 初始化style lv_style_set_layout(&style, LV_L

2021-08-26 20:29:42 2085

原创 LVGL8学习之row and a column layout with flexbox

这一篇来学习一下基于flexbox(柔性盒子)简单行和列布局,还是通过codeblock来模拟代码的运行,可设置layout对象内部的水平和竖直填充,以及布局内各item之间的间隔填充代码如下:void lv_flex_layout_test(){ lv_obj_t * container_row1 = lv_obj_create(lv_scr_act()); // 创建一个对象container_row1 if (container_row1 == NULL) {

2021-08-26 17:07:31 1874

原创 LVGL8学习之扩展当前主题(Extending the current theme)

这一篇来学习一下如何扩展当前主题,还是通过codeblock来模拟代码的运行,代码如下:static lv_style_t g_style_btn;/*当已经添加基本主题的样式添加新样式时,调用次函数*/static void new_theme_apply_cb(lv_theme_t * th, lv_obj_t * obj){ LV_UNUSED(th); if(lv_obj_check_type(obj, &lv_btn_class)) {

2021-08-26 14:42:09 1405

原创 LVGL8学习之add styles to parts and states

这一篇来学习一下add styles to parts and states,还是通过codeblock来模拟代码的运行,代码如下:void lv_add_style_to_parts_and_states_test(){ static lv_style_t style_indic; lv_style_init(&style_indic); lv_style_set_bg_color(&style_indic, lv_palette_lighten(LV_P

2021-08-26 14:33:18 382

原创 LVGL8学习之local styles

这一篇来学习一下给对象添加local style,还是通过codeblock来模拟代码的运行,代码如下:void lv_local_style_test(){ static lv_style_t style; lv_style_init(&style); lv_style_set_bg_color(&style, lv_palette_main(LV_PALETTE_GREEN)); lv_style_set_border_color(&sty

2021-08-26 14:23:48 610

原创 LVGL8学习之multiple styles

这一篇来学一下multiple styles,多种样式的组合使用代码如下:void lv_multiple_style_test(){ static lv_style_t style_base; lv_style_init(&style_base); lv_style_set_bg_color(&style_base, lv_palette_main(LV_PALETTE_LIGHT_BLUE)); lv_style_set_border_colo

2021-08-26 12:07:03 541

原创 LVGL8学习之transition

这一篇来学一下transition默认情况下,当一个对象改变状态时新的状态和属性会被立即设置。但是,使用transition转换,可以在状态更改时播放动画。例如:按下Button,其背景色可以播放超过300ms的动画颜色。转换的参数存储在样式中。可以设置:(1)转换的时间(2)开始转换前的延时时间(3)动画的路径(4)动画的属性可以为每个状态定义转换属性。例如:在默认状态下设置500ms的转换时间将意味着当对象转到默认状态时,将应用500ms的转换时间。在按下状态下设置100ms的转

2021-08-26 12:04:04 1051

原创 LVGL8学习之Line Style

这一篇来学习一下LineStyle的使用,还是通过codeblock来模拟代码的运行,代码如下:void lv_line_style_test(){ static lv_style_t style; lv_style_init(&style); // 样式初始化 lv_style_reset(&style); // 重置样式 lv_style_set_line_color(&style, lv_palette_main(LV_PALETT.

2021-08-26 11:33:22 693

原创 LVGL8学习之Text Style

这一篇来学习一下Text Style的使用,还是通过codeblock来模拟代码的运行,代码如下:void lv_text_style_test(){ static lv_style_t style; lv_style_init(&style); // 样式初始化 lv_style_reset(&style); // 重置样式 lv_style_set_radius(&style, 5); // 设置样式圆角 lv_style_se

2021-08-26 11:29:07 1354

原创 LVGL8学习之Image Styles

这一篇来学习一下Image Style的使用,还是通过codeblock来模拟代码的运行,代码如下:void lv_image_style_test(){ static lv_style_t style; LV_IMG_DECLARE(img_cogwheel_argb); // 声明图片变量 lv_style_init(&style); // 样式初始化 lv_style_reset(&style); // 重置样式 lv_style_.

2021-08-25 20:05:51 1070

原创 LVGL8学习之Shadow Styles

这一篇来学习一下Shadow Style的使用,还是通过codeblock来模拟代码的运行,代码如下:void lv_shadow_style_test(){ static lv_style_t style; lv_style_init(&style); lv_style_reset(&style); // 重置样式 lv_style_set_radius(&style, 5); // 设置样式圆角 lv_style_set_bg_

2021-08-25 18:39:09 527

原创 LVGL8学习之Outline Styles

这一篇来学习一下Outline Style的使用,还是通过codeblock来模拟代码的运行,代码如下:void lv_outline_style_test(){ static lv_style_t style; lv_style_init(&style); // 初始化样式 lv_style_reset(&style); // 重置样式 lv_style_set_radius(&style, 5); // 设置样式圆角 lv_st

2021-08-25 18:23:53 536

原创 LVGL8学习之Border Styles

这一篇来学习一下Border Style的使用,还是通过codeblock来模拟代码的运行,代码如下:void border_style_test(){ static lv_style_t style; lv_style_init(&style); // 初始化样式 lv_style_reset(&style); // 重置样式 lv_style_set_radius(&style, 10); // 设置样式圆角弧度 lv_styl

2021-08-25 18:05:35 1160

原创 LVGL8学习之Background Styles

这一篇学习一下Background Styles,代码如下:void background_style_test(){ static lv_style_t style; lv_style_init(&style); lv_style_reset(&style); // 重置样式 lv_style_set_radius(&style, 5); // 设置样式的圆角弧度 lv_style_set_bg_opa(&style, L

2021-08-25 17:46:46 2254

原创 LVGL8学习之Size styles

这一篇学习一下Size styles代码如下:void lv_size_style_test(){ static lv_style_t style; lv_style_init(&style); lv_style_reset(&style); // 重置按钮样式 lv_style_set_radius(&style, 5); // 设置样式圆角弧度 lv_style_set_width(&style, 150); //

2021-08-25 17:31:25 616 1

原创 LVGL8学习之slider

这一篇学习一下slider对象的使用可通过lv_slider_set_range设置滑块的变化范围可通过lv_slider_get_min_value获取滑块的最小值可通过lv_slider_get_max_value获取滑块的最大值代码如下:static void slider_event_callback(lv_event_t* event){ lv_obj_t * slider = lv_event_get_target(event); if (slider !

2021-08-25 17:05:38 693 1

原创 LVGL8学习之Button Styles

上一篇学习了Button,这一篇学习为按钮添加样式static void button_style_init(){ lv_style_init(&style_btn); // 初始化按钮样式 lv_style_reset(&style_btn); // 重置按钮样式 lv_style_set_radius(&style_btn, 10); // 设置按钮样式圆角弧度 lv_style_set_bg_opa(&style_btn, LV

2021-08-25 16:32:37 3526 1

灰度图 gray.zip

灰度图

2021-11-16

test_code.tar.gz

使用libjpeg和lodepng将jpg图片转换成rgb88格式的png图片

2021-11-11

lodepng_test.tar.gz

lodepng生成png图片

2021-11-11

jpeg_v9_test_code.tar.gz

libjpeg_v9源码和测试代码

2021-11-09

codeblocks-20.03mingw.zip

codeblocks-20.03mingw

2021-09-01

lvgl_v8_sim_codeblocks_win-master.zip

windows下codeblocks模拟运行lvgl8

2021-08-25

codeblocks-20.03-setup.zip

codeblocks20.03

2021-08-25

cpptools-win32.7z

cpptools-win32.vsix插件,安装在vscode上

2021-07-13

VScode1.58.7z

VScode1.58安装包

2021-07-13

LVGL中文手册.pdf

LVGL中文手册

2021-03-26

MGNCS-API接口-1.0.6.chm

MGNCS-API接口问答

2021-03-25

MiniStudio新控件集(mGNCS)编程指南.pdf

MiniStudio新控件集(mGNCS)编程指南

2021-03-25

MiniGUI-API接口文档3.0.10.chm

MiniGUI-API接口文档3.0.10

2021-03-25

MiniGUI官方编程指南-V3.0-C.pdf

MiniGUI官方编程指南-V3.0

2021-03-25

MiniStudio官方用户手册_V1.0-C.pdf

MiniStudio官方用户手册

2021-03-25

MiniGUI用户手册V3.0-5C.pdf

MiniGUI用户手册V3.0

2021-03-24

MiniGUI技术白皮书V3.0-2C.pdf

MiniGUI技术白皮书V3.0

2021-03-24

Windows下的bat脚按照时间戳创建文件夹

Windows下的bat脚按照时间戳创建文件夹,时间戳位YYYYMMDDHHMMSSMS

2016-09-06

Windows下的bat脚本设置时间

Windows下的bat脚本设置时间按照YYYY-MM-DD HH:MM:SS格式显示

2016-09-06

Linux下的shell脚本设置时间

Linux下的shell脚本设置时间按照YYYY-MM-DD HH:MM:SS格式显示

2016-09-06

Windows的bat脚本设置时间

Windows的bat脚本设置时间按照YYYY-MM-DD HH:MM:SS格式显示

2016-09-06

libpcap-MT:一种多线程的通用数据包捕获库

libpcap-MT:一种多线程的通用数据包捕获库

2015-08-14

libpcap-1.7.4

libpcap-1.7.4,这是目前的Libpcap的最新版本,值得下载。

2015-08-12

Lipcap源码

Lipcap源码,编译之后,安装好了就可使用。

2015-08-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除