自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 收藏
  • 关注

原创 17图片部件

图片重新着色是指将一种特定的颜色与图片的每个像素进行混合,这可以用于显示图片的。图片偏移是指对图片部件的内部所显示的图片进行偏移,值得注意的是,如果图片偏移出。图片旋转是指图片以某一点为中心,旋转一定的角度。在上图中,图片是围绕其中心点进行旋转的,如果用户需要改变旋转的中心点,可以调用。章节中,我们已经详细介绍了图标字体,它们可以作为图片部件的图片源,用户只。了图片部件的范围,则超出的部分会显示在与偏移方向相反的一侧,如图。值得注意的是,图片部件要显示。函数设置图片的缩放,该函数具有两个形参,

2026-03-29 15:55:49 306

原创 28图片按钮部件

关于图片源的获取,参考图片部件。当某个图片按钮被按下时,会触发事件回调,在回调函数中,我们会根据按钮的当前状态来切。图片按钮部件和按钮部件是非常相似的,它只不过是在按钮部件的基础上增加了图片显示。lv_imgbtn_get_src_left() //获取给定状态下的左侧图片。lv_imgbtn_get_src_right() //获取给定状态下的右侧图片。函数设置图片源,该函数的第二个形参代表按钮的状态(图片何时生效),lv_imgbtn_set_state() //设置图片按钮的状态。

2026-03-29 14:53:47 329

原创 画布部件(lv_canvas)

lv_canvas_set_px_opa() 设置画布上一个像素的透明度 画布部件的获取函数。lv_canvas_set_px_color() 设置画布上一个像素的颜色。lv_canvas_get_img() 获取画布的图像 画布部件的绘画函数。lv_canvas_draw_rect() 在画布上绘制矩形。lv_canvas_draw_text() 在画布上绘制文本。lv_canvas_draw_img() 在画布上绘制图像。lv_canvas_draw_arc() 在画布上绘制圆弧。

2026-03-29 14:35:47 331

原创 矩阵按钮部件

1按钮矩阵部件的组成在LVGL中,按钮矩阵部件相当于一系列伪按钮的集合,它按一定的序列来排布这些按钮。值得注意的是,这些伪按钮并不是真正的按钮部件(lv_btn),它们只是具有按钮外观的图形,但这些图形具有和按钮一样的点击效果。伪按钮所占的内存非常小,一个伪按钮大概占用8个字节,而一个普通按钮部件所占的内存大概为100~150个字节,由此可见,当GUI界面中使用较多按钮时,按钮矩阵的优势就尤为明显了。1按钮矩阵部件的组成。

2026-03-29 13:32:39 376

原创 LVGL_按钮部件(LV_btn)

在实际的LVGL项目工程中,按钮部件的使用频率是非常高的,它常用于控制设备的启停。在LVGL中,当按钮部件被创建出来之后,其默认是一个圆角矩形,较为遗憾的是,按钮部件并不能直接设置文本。本章节将分为以下几个小节:12.1按钮部件的组成12.2按钮部件的相关知识12.3按钮部件的API函数12.4按钮部件的实验按钮部件(lv_btn)按钮部件和基础对象非常类似,它们的绝大部分知识都是通用的,这里我们只介绍它们之间的区别:① 默认情况下,按钮部件不可滚动。

2026-03-25 20:58:28 373

原创 LVGL_进度条部件

进度条的功能较为简单,它一般被用作参数指示器或者进度指示器。

2026-01-09 15:17:23 339

原创 LVGL_圆弧部件

圆弧当前值指的是当前前景弧所指示的值,范围值是指圆弧当前值的可变化范围,示意图。在上述源码中,我们先创建圆弧部件,然后分别设置它的范围值和当前值,最后再设置其。在设置圆弧部件的角度(绝对度数)之前,我们需要先搞清楚圆弧的角度划分。前景弧的角度范围不能超过背景弧的角度范围,否则将会出现显示异常,该异常会在下次。默认情况下,圆弧部件是沿顺时针方向绘制的,如果用户需要修改绘制的方向,可以调用。在上述代码中,我们首先创建圆弧,设置背景弧的起始角度和终止角度分别为。度,旋转中心为圆弧的中心。

2026-01-05 21:03:31 1012

原创 LVGL_基础对象

基础对象的作用有四个:① 管理其他部件的基本属性;② 作为背景装饰;③ 辅助布局;④ 界面切换。1、管理其他部件的基本属性当基础对象被创建出来后,它默认是一个圆角矩阵,如图9.1.1所示:设计较为复杂的GUI界面时,不同功能的模块之间需要清晰地划分区域,此时,我们可以使用基础对象作为背景,对不同的区域进行划分。当GUI界面中有一些组成内容相似的模块时,可以利用基础对象作为父对象,创建出其他的部件,这些部件将出现在基础对象内部,此时,我们只需要管理各基础对象之间的布局即。

2026-01-05 16:49:38 549

原创 熟悉LVGL工程结构

无论是在PC端进行模拟还是在MCU上跑LVGL,LVGL的工作流程都是相同的。

2026-01-05 14:02:20 281

原创 Git使用教程

点击GitClone,之后会让输入名称和密码。再输入账号密码就可以将远程仓库搬到本地电脑。首先在Gitee上复制自己的仓库地址。

2025-12-31 11:51:43 134

原创 操作MCU内存

在map文件中找到我们标记的关键字字段,发现数字存储在0x0000000000001920地址,我们进行打印,注意修改代码后这个地址会变,写好编译代码后在进行修改打印地址即可。比如程序版本信息等需要在烧录时就写入MCUflash的固定字段。在link.ld文件中加入关键字字段内容。打印结果正确那我们如何写入固定的地址呢?我们将地址内容打印出来看是否正确。继续放置,头部会紧挨着代码。(取决于Flash擦除状态)(编译后代码结束地址)此时链接器计算:如果从。

2025-12-24 20:58:19 448

原创 内存字节对齐

1字节对齐这样的好处就是,将结构体非常方便的就可以转存到数组中,或者直接当作数组使用。直接当作数组使用不推荐。

2025-12-24 19:01:22 226

原创 CH32V307以太网学习

WCHNET_Init 为库初始化函数。关于 WCHNET_Init 函数使用方法请参考 3.2。对 WCHNET 初始化后,应用层需要开启以太网中断,并在相应的中断函数中调用中断服务函数另外库函数需要外部提供时钟,用于给时间相关的任务提供时钟源,例如刷新 ARP 列表,TCP 超时等,通过调用 WCHNET_TimeIsr 函数更新时间,该函数传递的参数为最近一次调用的时间差值,单位毫秒。综上,在调用 WCHNET_Init 进行库初始化后,应用层需要调用 ETH_Init 初始化以太网物。

2025-12-10 17:31:06 980

原创 FreeRTOS中断管理

中断是CPU的一种常见特性,中断一般由硬件产生,当中断发生后,会中断CPU当前正在执行的程序而跳转到中断对应的服务程序种去执行,ARM Cortex-M 内核的 MCU 具有一个用于中断管理的嵌套向量中断控制器(NVIC,全称:Nested vectored interrupt controller)。的NVIC最大可支持256个中断源,其中包括16个系统中断和240个外部中断。然而芯片厂商一般情况下都用不完这些资源,以正点原子的战舰开发板为例,所使用的芯片就只用到了。

2025-10-18 10:51:05 820

原创 USB通讯学习

我是小白,在以后使用usb的过程中我会不断地去更新补充这篇博客,分享如何将usb设置为cdc与上位机进行通讯代码框架一共有三个文件ch32x035_usbfs_device.c ------------------------USB驱动相关ch32x035_desc.c---------------------------USB描述符相关app_usb.c --------------------用户app,usb数据发送函数,初始化函数app_usb.h。

2025-10-13 13:07:23 1542

原创 基于沁恒微电子CH32V307单片机使用

方法一:在编译器上创建一个工程,将官方的SRC文件夹复制过来,将创建Ld文件夹下的ld文件覆盖掉官方SRC的ld文件,这样做不用修改flash和RAM的大小,进入工程,将所有的文件路径重新进行修改。方法二:不复制src文件夹,用自己的。再将额外需要的添加进来,比如以太网库。在编辑器中添加新增库路径即可。

2025-07-23 16:05:42 772

原创 单片机串口调试

串口调试,能帮助我们解决bug,但是在正常运行时又会影响MCU的速度,因此我们需要关闭它。有时候我们想要关闭打印调试,

2025-07-09 13:57:48 182

原创 MounRiver软件设置

进入编译设置。

2025-07-01 19:16:36 597

原创 PCB硬件电路设计_pcb布线设计

这些电路都会非常接近MCU,他们的可靠性决定了MCU能否正常工作。外围电路,为了布线整齐美观,尽量避免打过多的通孔。在布局的时候走线的顺序和元器件顺序尽可能的保持一直避免走线交叉。

2025-04-28 16:48:19 1834

原创 认识电子原件

电阻色环电阻:最后一个环为偏差倒数第二个环是倍数其余的将颜色对应的数据组合起来贴片电阻:电容U = 1/cidt贴片电容MLCC多片陶瓷片式电容器:中高段的滤波特性好钽电容:容值高,低频滤波(有正负)铝电解电容插件电容铝电解电容CBB电容X电容Y电容高压陶瓷电容电感类型:电感读数二极管二极管工作曲线二极管的使用二极管正负区分PCB丝印正负标识。

2025-04-14 11:54:13 934

原创 立创EDA专业版使用教程

PCB设置里我i们可以设置自动添加泪滴,常用布线宽度等等。

2025-04-05 21:44:17 1771

原创 led屏幕驱动原理

以上就是如何实现驱动led显示屏的原理讲了:行管芯片的作用恒流驱动芯片的作用,在恒流驱动芯片中讲了如何实现灰度等级的,如何提高发光效率HUB75接口的认识。

2025-04-03 16:52:12 964

原创 Windows系统有趣操作

在Windows搜索栏中输入“记事本”,然后在结果中找到“记事本”应用。右键点击“记事本”,选择“以管理员身份运行”;然后在记事本里面找到文件选项,打开文件C:\Windows\System32\drivers\etc,选择打开hosts文件,这样就能直接修改了。这篇文章记录在使用windows系统过程中遇到的一些问题以及解决方法!如果提示需要管理员权限才能保存到该文件夹怎么解决?保存文件,退出,大功告成!1、github访问很慢。

2025-03-30 17:23:32 207

原创 Linux线程入门

以上 API 都是针对线程属性操作的,所谓线程属性是类型为 pthread_attr_t 的变量,设置一个线程的属性时,通过以上相关的函数接口,将需要的属性添加到该类型 变量里面,再通过 pthread_create( )的第二个参数来创建相应属性的线程。1,当线程的调度策略为 SCHED_FIFO 时,其静态优先级(static priority)必须设置为 1-99,这将意味着一旦这种线程处于就绪态时,他能立即抢占任何静态优先级为 0 的普通线程。每个线程都有一个栈,它是线程执行时的内存区域。

2025-03-05 20:53:55 882

原创 Linux进程

1、使用ipcs -m可以查看当前路径下消息队列的信息2、消息队列使用简单但是由于内核进行分配内存,检查边界,设置阻塞,以及各种权限监控,使得我们使用起来非常省力,因此不适合用来传输海量数据,能解决这个问题的就是共享内存。1、他们都需要通过键值获取ID才能进行一系列的操作2、ipcs指令:查看当前路径下的消息队列,共享内存,信号量信息从你提供的信息来看,系统中当前有一个共享内存段和一个信号量数组。

2025-03-03 11:42:22 737

原创 SPI通讯

SPI总线包括4条逻辑线,定义如下MISO:Master input slave output 主机输入从机输出MOSI:Master output slave input 主机输出从机输入SCLK:Serial Clock 穿行时钟信号,由主机产生发送给从机SS:Slave Select 从机选择信号,通常低电平有效不同的制造商会遵循其他的命名规则MISO也可以是:SOMI,DOUT,DO,SDO或SO(在主机端)MOSI也可以是:SIMO,DIN,DI,SD或SI(在主机端)

2025-02-15 11:48:44 330

原创 Can通信学习

CAN收发器一般是单独的芯片,并且根据CAN总线的结构不同,需要使用不同的CAN收发芯片,例如,STM32F407开发板上使用的CAN收发芯片是TJA1040,只能构成闭环网络结构。总线上所有设备都会监视总线数据,一旦发现“为错误”“填充错误”“CRC错误”“格式错误”“应答错误”,这些设备便会发出错误帧来破坏数据,同时终止当前的发送设备,发送错误帧有两种主动错误帧,被动错误帧,这是根据错误状态进行选择的。,如下图4所示,传输的是差分信号,通过两根信号线的电压差CANH-CANL来表示总线电平。

2025-01-21 11:58:32 3316

原创 DMA的使用方式

DMA可以将数据在占用用CPU资源的同时进行数据传输。

2025-01-11 15:41:38 880

原创 LVGL移植

基于正点原子LVGL教程。

2025-01-11 10:49:48 1432

原创 串口通讯学习记录

单片机TXD接232的T/R-单片机RXD接232的RXD+

2025-01-07 11:14:21 783

原创 单片机里不想阻塞系统的延时

状态机有助于解决延时导致系统的阻塞问题。

2024-12-26 18:25:07 1189

原创 驱动LCD液晶显示器

参考文章链接。

2024-12-19 10:07:24 640

原创 ARM寄存器简介

_CC_ARM:用于 ARM 编译器(如 armcc 或 armclang)。__ICC_ARM:用于 IAR 编译器(IAR Embedded Workbench for ARM)。__GNUC__:用于 GNU 编译器(如 GCC,支持多种平台)。

2024-12-05 11:23:23 1853

原创 FreeRTOS移植

1.Source文件夹这里我们再重点分析下文件夹下的文件,具体见图13-6。编号①和③包含的是FreeRTOS的通用的头文件和C文件,这两部分的文件试用于各种编译器和处理器,是通用的。需要移植的头文件和C文件放在编号②portblle这个文件夹。

2024-12-04 12:06:30 1364

原创 PID一文章教会你控制舵机,直流电机,步进电机

本篇博客适用于有一点点PID基础的,小白也可以看,对后序写程序的思路有很大帮助。

2024-11-27 18:32:21 1672

原创 Keil5使用

这是因为要将Keil默认是C89,要设置成c99。

2024-11-27 17:06:19 529

原创 单片机IAP固件升级

IAP技术能够让单片机在应用运行时自行更新固件,无需外部编程器或人工干预,极大提高了设备的维护性和灵活性。它在嵌入式系统、物联网设备、智能硬件等领域具有重要的应用价值。Bootloader(引导程序)是嵌入式系统和单片机中用于启动操作系统或应用程序的基础软件。它的主要作用是在系统上电或重启时,初始化硬件并加载并执行主程序或操作系统。简而言之,Bootloader是设备开机时首先运行的程序,它帮助将设备从一个无操作系统的状态启动到一个有操作系统或应用程序的状态。

2024-11-23 23:17:38 1292

原创 了解lwip

lwIP是一个小型的开源的TCP/IP协议栈(精简版的TCP/IP协议)

2024-10-30 09:35:28 1556

原创 GD32学习知识点累计

GD32f427主频最高位240MHZ,GD32给的函数外接25MHZ晶振配置主频为200MHZ,APB1最高频率为60HZ配置为主频的4分频为50MHZ,APB2最大为120MHZ配置为主频的2分频为100MHZ。无论什么定时器最大频率为240MHZ。

2024-10-24 18:36:45 450

原创 01.系统IO

文章的函数说明只是简单的说明,具体还得查看man手册。

2024-09-23 11:20:32 921

空空如也

空空如也

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

TA关注的人

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