自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LVGL输入设备管理

LVGL版本:8.1。

2025-05-13 16:23:05 1015

原创 LVGL图像导入和解码

经转换器生成的C语言数组,适用于页面中不常改变的固定图像。存储系统中的外部图像,比较灵活,可以通过插卡或从网络中获取,但需要配置相应的驱动和解码器,解码过程也需要占用时间和内存。SYMBOL类型的文本,和label组件类似。其中第三种比较容易实现,第一种仅需经过官方工具生成二进制数据,再在代码中引用即可。本文重点说明第二种情况即外部图像的使用,并以PNG类型图片为例介绍LVGL图像的解码和显示。

2025-05-10 21:54:07 1046

原创 LVGL源码学习之渲染、更新过程(3)---绘制和刷写

终于研究完了整个流程,原理倒是不难懂,但代码总感觉不是很漂亮,特别多冗余的代码(为了健壮性考虑,在后面的版本,多少都精简了),比如经常要取无效区域的当前对象坐标区域的交集,这种操作几乎每一层函数调用都在发生,看多了容易理得很乱。全刷新模式下,使用大缓冲(或者显示器大小的缓冲),渲染速度较慢,反而使用小缓冲,速度更快,代价是容易花屏,但整体速度都不如普通模式;直写模式下,必须使用显示器大小缓冲,否则会报错,速度上略慢于普通模式,但差距很小;

2025-05-09 19:01:43 555

原创 LVGL源码学习之渲染、更新过程(2)---无效区域的处理

LVGL版本:8.1。

2025-05-09 18:50:04 1038

原创 LVGL源码学习之渲染、更新过程(1)---标记和激活

LVGL版本:8.1。

2025-05-09 18:00:09 1189

原创 μC/OS-Ⅱ源码学习(8)---同步与延时

本文进一步解析μC/OS-Ⅱ中,与时间相关的函数源码。

2024-12-23 20:57:58 595

原创 μC/OS-Ⅱ源码学习(7)---软件定时器

本文进一步解析μC/OS-Ⅱ中,软件定时器的函数源码。

2024-12-19 18:10:53 1042

原创 μC/OS-Ⅱ源码学习(6)---事件标志组

事件标志组(Event flag group)/* 事件标志组类型 *//* 等待链表,里面的每一个节点都记录了相关任务等待事件标志位的信息 *//* 当前存在的标志 */#endif与其他事件不同,事件标志组不共享OS_EVENT结构,而是有自己特殊的结构。其中OS_FLAGS#endif#endif#endif链表用来记录等待该事件标志组的所有任务及其需求,通常通常用一个节点对象/* 等待列表的下一个节点 *//* 等待列表的前一个节点 */

2024-12-16 12:13:50 1012

原创 μC/OS-Ⅱ源码学习(5)---消息队列

本文进一步解析事件模型中,消息队列类型的函数源码。先回顾一下之前的通用事件控制块类型消息队列有自己的专属结构,该结构通过指针挂载在中。

2024-12-13 17:07:06 896

原创 μC/OS-Ⅱ源码学习(4)---信号量

这一操作不是一定能成功的,只有当当前计数器值大于0或没有任务等待该信号量时,才能成功设置(这也是合理的,如果有任务正在苦苦等待该信号量,手动设置一个新值会让该任务立即就绪,从而影响了系统的执行时序。这里只有事件对任务的单向解绑定,没有任务对事件的解绑,和上面的双向绑定有出入,同时也没有后面优先级就绪表的操作。信号量创建后一般是没必要删除的,μC/OSⅡ默认也不会开启删除功能,但为了逻辑的连贯性,这里也分析一下删除的源码。,发生在任务开始等待事件时,将任务等待的事件控制块记录在TCB内,并将。

2024-12-13 15:48:34 977

原创 μC/OS-Ⅱ源码学习(3)---事件模型

本文开始,进入事件源码的学习。

2024-12-11 17:53:19 680

原创 μC/OS-Ⅱ源码学习(2)---多任务系统的实现(下)

本文继续探究任务生命周期的其它函数源码。

2024-12-11 12:01:34 833

原创 μC/OS-Ⅱ源码学习(1)---多任务系统的实现(上)

在之前的文章中通过多个模型来建立对多任务的概念,本文将会从源码角度解析模型的具体实现。μC/OS-Ⅱ中的多任务。

2024-12-03 16:59:49 1083

原创 .H头文件开头的那些宏定义都是啥意思

else#endif这一种写法对于第一次遇到的同学来说是最奇怪的,改写法本质上也是为了避免重复定义,但与第一种写法又不太一样。通常来说,我们仅在源文件中定义全局变量,然后在某个头文件中用extern继承该变量,其它源文件要使用该全局变量就得引用该头文件。但如果我想让源文件足够整洁,只在头文件中定义全局变量(注意C语言虽然不建议该写法,但编译器并不禁止),就可以用这种写法,让不同的源文件在引用该头文件时具有不同的效果。如下图:在源文件my_App.c中定义了宏OS_Globals于是“

2024-11-28 17:21:56 1073

原创 详解过零点检测原理

实际的采样数据是离散的,我们以一个上升沿为例,假设采样频率为5000Hz,则50Hz交流电一个周期的采样点数就是100个。有了过零点边缘信息,就可以用这些数据进行周期、频率及更多的计算了。即过零点处正弦波斜率的变化率为0,可以认为在该处附近用直线拟合是代价最低的。从ADC采样的数据中分析出信号特征,是后续操作的前提。对于周期信号,过零点检测是这些分析方法中最简单也是效率最高的一种,使用过零点检测技术,可以轻松获取周期的端点,并为后续各种指标的计算提供关键信息。在这种情况下,信号周期的边界就模糊起来,

2024-11-14 10:46:51 2182

原创 采样交流电的功率计算

①无功功率的概念可以类比于用吸管喝水,我们用吸管的时候会发现总有一部分约等于吸管容量的水吸不上来,那部分就有些类似于无功容量,那部分水的作用是填满吸管以便于液体在容器和口腔中交换,喝水之前需要额外用力吸一下就是无功功率,最后这一部分液体会返回到容器中,你虽然没喝到,但是却对这部分做了功;对于电网中的各种用电设备,都可以用功率来形容它们的能量消耗情况,功率越大,表示单位时间所需能量越大,如一个额定功率2.2kVA的吹风筒,以220V的家庭用电,需要有效值为10A的电流才能驱动。对于无功功率,由于有功。

2024-11-12 17:41:36 1006

原创 采样交流电的有效值

可以看到,有效值的计算结果其实就是均方根值(Root Mean Square Value),二者在计算方式上是相通的。但二者的出发点不同,有效值是为了衡量交变信号的大小而定义的,而均方根更多是指一种算法,与使用场景无关。有效值(Virtual Value)是衡量交变电信号能量水平的一种方式,由于交流电通常周期信号,且均值为0,使用平均值无法计算出信号的有效大小,因此引入有效值的方式进行测量。先介绍有效值的背景:有效值是以电热效应为依据进行定义的,假设一直流电流大小为。,则该交流电的有效值等于。

2024-11-12 17:33:15 1299

原创 锁相环的核心:鉴相器

本文讨论的锁相环仅考虑软件算法,不涉及硬件部分。如下图,锁相环是对受控信号进行调控使其和基准信号同频同相,是一个经典的反馈控制算法。其中最重要的部分是鉴相器(相位频率比较器),鉴相器可以通过对比基准信号和受控信号的特征得到当前的误差,后续再由PID或简单滤波将误差转换成输出量对受控信号进行调整。所以问题的关键便在于鉴相器如何得到误差。

2024-11-04 12:15:32 3767

原创 算术平均滤波背后的原理

上一篇文章里,写到一阶滞后滤波器的形式:在正式引入算术平均滤波器之前,有必要先谈一谈下面这种形式:粗略一看,和一阶滞后滤波器很像,这也是一种低通滤波器,输出仅与当前以及上一次的输入有关,并对两次输入做了加权。进行初步仿真,将a=0.1和a=0.9带入后,得到两幅频率响应特性图:a=0.1时的频率响应曲线a=0.9时的频率响应曲线。

2024-10-30 16:26:56 881

原创 从系统角度探究一阶滞后滤波器

这里a的取值范围为0

2024-10-29 18:52:30 785 1

原创 USB CustomHID设备驱动从USB IP迁移至OTG IP(标准库)

在发现问题所在时便就有个疑惑:既然驱动都用错了,应该不可能能连接上,而不是先连接上,但会偶发错误!后面在调试的过程中,我反复地对比USB驱动和OTG驱动在运行过程中的数据,发现二者所用的数据结构基本类似,相关寄存器也能对应的上,可以说这两套驱动本是同源(哭笑),但内核不一样终究会出问题。本文虽然写了不少,但内容只是个大概,没有针对每个文件进行细说,这里边还是得自己边调试边照着文档一步步来。

2023-07-19 23:24:55 838

原创 μC/OS-Ⅱ中的多任务

在学习单片机上使用uscos系统时,思考的一些问题和总结,自己也画了一些图来描述这些想法。本文主要分析问题和模型结构,不会过多涉及具体代码。

2023-04-15 21:03:56 550 1

原创 PID的变种

承接上文,继续写一写不同PID的变种。

2023-04-03 16:56:11 3148 1

原创 浅谈控制原理以及PID

为有信号系统基础的同学提供一些控制原理入门理解

2023-03-30 21:24:43 889

原创 STM32 ADC转换+DMA传输(详解)

由定时器触发的ADC采样,并使用DMA总线大批量传输到内存,通过中断告知一轮传输完毕

2022-12-16 18:00:55 47451 11

空空如也

空空如也

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

TA关注的人

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