摘要:
一、数字加密的概念 1.1 加密概念 数据加密技术是指一条消息通过加密密钥和加密函数转换成无意义的密文,接收者通过解密函数和解密密钥将密文还原成明文。这样,我们就可以保护数据不被非法窃取和读取。提高计算机安全水平的基础是掌握数据加密的本质,数据加密由明文(未加密报文)、密文(加密报文)、加解密设备或 阅读全文
一、数字加密的概念 1.1 加密概念 数据加密技术是指一条消息通过加密密钥和加密函数转换成无意义的密文,接收者通过解密函数和解密密钥将密文还原成明文。这样,我们就可以保护数据不被非法窃取和读取。提高计算机安全水平的基础是掌握数据加密的本质,数据加密由明文(未加密报文)、密文(加密报文)、加解密设备或 阅读全文
posted @ 2024-12-13 17:34
shumei52
阅读(842)
评论(0)
推荐(0)
摘要:
此篇文章在2024年9月12日被记录 vscode 自定义任务 vscode是一款优秀的代码编辑器,并且内置了任务系统,意味着用户可以根据自身需求使用快捷键的方式运行自己的命令或者脚本,从而提升工作效率 1.给任务绑定快捷键 使用快捷键打开键盘快捷方式界面,默认快捷键为CTRL+K+S,在当前界面搜 阅读全文
此篇文章在2024年9月12日被记录 vscode 自定义任务 vscode是一款优秀的代码编辑器,并且内置了任务系统,意味着用户可以根据自身需求使用快捷键的方式运行自己的命令或者脚本,从而提升工作效率 1.给任务绑定快捷键 使用快捷键打开键盘快捷方式界面,默认快捷键为CTRL+K+S,在当前界面搜 阅读全文
posted @ 2024-12-13 15:42
shumei52
阅读(282)
评论(0)
推荐(0)
摘要:
此篇文章在2024年11月5日被记录 怎样在ESP32上流畅的播放动画 最近有一个预研项目,在ESP32上播放动画,于是来测试一下ESP32刷动态图的极限性能 1. 硬件以及内容描述 名称 描述 CPU ESP32S3@240Mhz RAM 512KB (IRAM (192KB ) + DRAM( 阅读全文
posted @ 2024-12-13 15:37
shumei52
阅读(2469)
评论(1)
推荐(0)
摘要:
此篇文章在2024年11月1日被记录 TLSF内存算法 1、动态内存算法管理背景 项目中经常需要使用malloc进行动态内存分配,但是存在两个缺陷 由于分配算法的复杂度,分配时间不确定 在不断地申请、释放过程中,容易因为内存对齐产生碎片内存 这两个缺点在项目中华通常是不被允许的,因此需要一套较为合理 阅读全文
此篇文章在2024年11月1日被记录 TLSF内存算法 1、动态内存算法管理背景 项目中经常需要使用malloc进行动态内存分配,但是存在两个缺陷 由于分配算法的复杂度,分配时间不确定 在不断地申请、释放过程中,容易因为内存对齐产生碎片内存 这两个缺点在项目中华通常是不被允许的,因此需要一套较为合理 阅读全文
posted @ 2024-12-13 15:36
shumei52
阅读(705)
评论(0)
推荐(0)
摘要:
此篇文章在2024年10月30日被记录 技能储备系列是一些暂时由于时间或者其他客观因素暂时无法进行的工作,但是觉得很有用,因此做个记录,文章参考自Snow_2018在CSDN上的文章,原文链接为点击我 写在前面 本文介绍了J-Link RTT的部分使用内容,很多地方参考和使用了J-Link的官方资料 阅读全文
此篇文章在2024年10月30日被记录 技能储备系列是一些暂时由于时间或者其他客观因素暂时无法进行的工作,但是觉得很有用,因此做个记录,文章参考自Snow_2018在CSDN上的文章,原文链接为点击我 写在前面 本文介绍了J-Link RTT的部分使用内容,很多地方参考和使用了J-Link的官方资料 阅读全文
posted @ 2024-12-13 15:34
shumei52
阅读(846)
评论(0)
推荐(0)
摘要:
此篇文章在2024年10月29日被记录 盘点C语言中的字符串操作函数 1、字符串复制和连接 #include <stdio.h> #include <string.h> int main() { // strcpy char src1[] = "Hello"; char dest1[20]; str 阅读全文
posted @ 2024-12-13 15:29
shumei52
阅读(176)
评论(0)
推荐(0)
摘要:
此篇文章在2024年7月15日被记录 程序员在C编码时需要尽量考虑所有的异常情况,否则解决问题需要花费制造问题的数倍 1、数组操作越界,造成相邻内存中的数据踩踏 在下面示例代码中,arr_a[i] = 10 越界访问造成了arr_b中的数据被修改 uint8_t arr_a[5] = {0,1,2, 阅读全文
posted @ 2024-12-13 15:26
shumei52
阅读(255)
评论(0)
推荐(0)
摘要:
此篇文章在2024年7月5日被记录 1、音频产生原理 物体的振动产生声音,下图是一段音频波形,可以从这张图片中了解一下声音的关键参数 采样率:一秒钟有多少个采样点,常见的有8K,16K、32K、44.1K等,可以说采样率越高,音质越高 采样位深:一个采样点的音频深度,常见的有8bit或者16bit, 阅读全文
此篇文章在2024年7月5日被记录 1、音频产生原理 物体的振动产生声音,下图是一段音频波形,可以从这张图片中了解一下声音的关键参数 采样率:一秒钟有多少个采样点,常见的有8K,16K、32K、44.1K等,可以说采样率越高,音质越高 采样位深:一个采样点的音频深度,常见的有8bit或者16bit, 阅读全文
posted @ 2024-12-13 15:25
shumei52
阅读(313)
评论(0)
推荐(0)
摘要:
此篇文章在2024年6月7日被记录 问题描述:最近在使用STM32G0的bootloader下载时,发现拉高boot0后,空片只能烧录一次,然后无论如何拉boot0,再也无法线刷固件了,通过查看文档解决了此问题 1、STM32G0系列与旧款STM32启动的不同之处 旧款STM32 boot启动方式: 阅读全文
此篇文章在2024年6月7日被记录 问题描述:最近在使用STM32G0的bootloader下载时,发现拉高boot0后,空片只能烧录一次,然后无论如何拉boot0,再也无法线刷固件了,通过查看文档解决了此问题 1、STM32G0系列与旧款STM32启动的不同之处 旧款STM32 boot启动方式: 阅读全文
posted @ 2024-12-13 15:24
shumei52
阅读(884)
评论(0)
推荐(0)
摘要:
此篇文章在2024年5月24日被记录 在lvgl中,当两个页面之间互相切换时,先将第一个页面的控件全部删除,在创建新页面的控件,但是有时执行后会发现会出现内存泄漏:两个页面来回切换,内存占用不断提高,直到卡死。 1、情况复现 使用最简单的方式复现问题,模拟器新建两个页面,每个页面在创建时新建一个st 阅读全文
此篇文章在2024年5月24日被记录 在lvgl中,当两个页面之间互相切换时,先将第一个页面的控件全部删除,在创建新页面的控件,但是有时执行后会发现会出现内存泄漏:两个页面来回切换,内存占用不断提高,直到卡死。 1、情况复现 使用最简单的方式复现问题,模拟器新建两个页面,每个页面在创建时新建一个st 阅读全文
posted @ 2024-12-13 15:21
shumei52
阅读(1599)
评论(0)
推荐(0)
摘要:
此篇文章在2024年5月9日被记录 前段时间写了一篇文章描述FSM(有限状态机),但是在有些情况下业务比较复杂,就会使用到HFSM(层次状态机),使用层次状态机,将复杂的业务分解为几个大状态,每个大状态再维护自身内部的小状态,可以使代码更加条理,增加代码的可读性与可维护性 1、层次状态机思想 类似于 阅读全文
此篇文章在2024年5月9日被记录 前段时间写了一篇文章描述FSM(有限状态机),但是在有些情况下业务比较复杂,就会使用到HFSM(层次状态机),使用层次状态机,将复杂的业务分解为几个大状态,每个大状态再维护自身内部的小状态,可以使代码更加条理,增加代码的可读性与可维护性 1、层次状态机思想 类似于 阅读全文
posted @ 2024-12-13 15:18
shumei52
阅读(736)
评论(0)
推荐(0)
摘要:
此篇文章在2024年4月11日被记录 1. 前言 在lvgl中经常需要显示大量图片,但是MCU的内部flash不足以保存大量的图片,因此需要将图片保存在外部flash上,通过SPI或者QSPI方式读取。 适用于嵌入式的文件系统较多,例如fatfs,但是较为占用资源,并且在文件较多的情况下,读取文件需 阅读全文
此篇文章在2024年4月11日被记录 1. 前言 在lvgl中经常需要显示大量图片,但是MCU的内部flash不足以保存大量的图片,因此需要将图片保存在外部flash上,通过SPI或者QSPI方式读取。 适用于嵌入式的文件系统较多,例如fatfs,但是较为占用资源,并且在文件较多的情况下,读取文件需 阅读全文
posted @ 2024-12-13 15:12
shumei52
阅读(624)
评论(0)
推荐(0)
摘要:
此篇文章在2024年3月25日被记录 个人比较喜欢重低音音乐,但是好的重低音音响都比较贵,比如JBL战神战鼓系列,又或者迪瓦雷系列,可望而不可即。所以就想自己先做一个来试试水,听听感觉 方案设计 发声单元使用两个全频喇叭 + 一个重低音喇叭 + 低音振膜 全频喇叭实在某宝上找的10W的全频小音箱,用 阅读全文
此篇文章在2024年3月25日被记录 个人比较喜欢重低音音乐,但是好的重低音音响都比较贵,比如JBL战神战鼓系列,又或者迪瓦雷系列,可望而不可即。所以就想自己先做一个来试试水,听听感觉 方案设计 发声单元使用两个全频喇叭 + 一个重低音喇叭 + 低音振膜 全频喇叭实在某宝上找的10W的全频小音箱,用 阅读全文
posted @ 2024-12-13 15:08
shumei52
阅读(310)
评论(0)
推荐(0)
摘要:
此篇文章在2024年3月6日被记录 1、LVGL单缓冲区刷屏流程 任务启动之后,lvgl按需往屏幕上刷数据,阻塞等待刷屏完成,继续运行lvgl任务,重复此流程 2、LVGL双缓冲区刷屏流程 启动之后,lvgl按需往屏幕上刷数据,在触发SPI DMA发送后,前台继续处理LVGL任务,并且渲染在另一个缓 阅读全文
posted @ 2024-12-13 15:06
shumei52
阅读(955)
评论(0)
推荐(0)
摘要:
此篇文章在2024年2月19日被记录 2024年暂时的目标 忙碌的一年需要记录,不然没什么东西值得回头 1、高质量的完成任务,学习中工作,工作中学习 2、制作一个蓝牙音箱,根据自己的喜好增加低音 已经完成 查看这里 3、给弟弟做一个固定翼航模飞机 材料购买完成 五一假期回家做 2024.5.6更新: 阅读全文
此篇文章在2024年2月19日被记录 2024年暂时的目标 忙碌的一年需要记录,不然没什么东西值得回头 1、高质量的完成任务,学习中工作,工作中学习 2、制作一个蓝牙音箱,根据自己的喜好增加低音 已经完成 查看这里 3、给弟弟做一个固定翼航模飞机 材料购买完成 五一假期回家做 2024.5.6更新: 阅读全文
posted @ 2024-12-13 15:04
shumei52
阅读(48)
评论(1)
推荐(0)
摘要:
此篇文章在2024年1月9日被记录 熟悉了解本章博客需要你有较为入门的编程基础,包括但是不限于C语言、python 1、前言 最近在老五这里看到4.2寸的三色墨水屏只要7.5一张,于是下单了两个,到货后发现是全新设备,保护膜都在,拆开后发现是telink8359处理器,3个纽扣电池,这个价格还要什么 阅读全文
此篇文章在2024年1月9日被记录 熟悉了解本章博客需要你有较为入门的编程基础,包括但是不限于C语言、python 1、前言 最近在老五这里看到4.2寸的三色墨水屏只要7.5一张,于是下单了两个,到货后发现是全新设备,保护膜都在,拆开后发现是telink8359处理器,3个纽扣电池,这个价格还要什么 阅读全文
posted @ 2024-12-13 14:57
shumei52
阅读(633)
评论(0)
推荐(1)
摘要:
此篇文章在2023年12月28日被记录 1、前言 MCU系统中的低功耗功能非常重要,如果你的MCU系统供电方式是连接市电,降低功耗可以减少发热,延长使用寿命;如果你的设备是移动端设备,使用小型电池供电,那么低功耗的意义就更大了,更低的功耗可以延长使用时长,提高用户体验。 2、硬件降低功耗的方式 正确 阅读全文
posted @ 2024-12-13 14:52
shumei52
阅读(499)
评论(0)
推荐(0)
摘要:
此篇文章在2023年12月20日被记录 1.前言 在某些情况下,我们的虚拟机可能会断网运行,碰巧此时在物理机下需要运行自动化程序,虚拟机也要同步运行,但是虚拟机断网了,也没办法使用SSH或者其他交互方式,那此时怎么办呢? 2.在物理机上指定虚拟机运行指令 2.1VMrun 我们的VMware在安装时 阅读全文
posted @ 2024-12-13 14:51
shumei52
阅读(877)
评论(0)
推荐(0)
摘要:
此篇文章在2022年12月19日被记录 简介 软件设计原则是指软件在架构设计或者在详细设计过程中所需要遵循的原则,现有的软件设计模式都是在不同场景下对软件设计原则的应用,良好的软件项目实践都会在设计及编码阶段思考或者遵循常见的设计原则来实现最终的设计目标。 设计原则的最终目的是使软件产品能实现指定的 阅读全文
posted @ 2024-12-13 14:50
shumei52
阅读(252)
评论(0)
推荐(0)
摘要:
此篇文章在2023年12月6日被记录 1、前言 先写一个简单的测试程序并且运行: #include <stdio.h> #include <stdlib.h> #include <time.h> int array[1024][1024] = {0}; int main() { int begint 阅读全文
此篇文章在2023年12月6日被记录 1、前言 先写一个简单的测试程序并且运行: #include <stdio.h> #include <stdlib.h> #include <time.h> int array[1024][1024] = {0}; int main() { int begint 阅读全文
posted @ 2024-12-13 14:49
shumei52
阅读(93)
评论(1)
推荐(1)
摘要:
此篇文章在2023年11月27日被记录 1、背景 这两天在维护公司一个老旧项目,编译是用bat批处理+python实现的,但是把最新的代码拉下来后发现编译不过去,提示bat指令有错误,并且是很离谱的错误,但是回退到之间的稳定版本,命令行编译是没有任何问题的,经过两天N多次试错失败后终于发现了一些端倪 阅读全文
posted @ 2024-12-13 14:46
shumei52
阅读(213)
评论(0)
推荐(0)
摘要:
此篇文章在2023年9月28日被记录 Dijkstra算法的核心点是贪心算法:不断寻找最短的点,在最短的点上更新最短路径 1.前言 想要了解学习Dijkstra算法,需要先了解无向图与权重图,无向图顾名思义就是没有方向的图,下面表示了有向图和无向图以及权重图 2.什么是Dijkstra算法 Dijk 阅读全文
此篇文章在2023年9月28日被记录 Dijkstra算法的核心点是贪心算法:不断寻找最短的点,在最短的点上更新最短路径 1.前言 想要了解学习Dijkstra算法,需要先了解无向图与权重图,无向图顾名思义就是没有方向的图,下面表示了有向图和无向图以及权重图 2.什么是Dijkstra算法 Dijk 阅读全文
posted @ 2024-12-13 14:43
shumei52
阅读(71)
评论(0)
推荐(0)
摘要:
此篇文章在2023年9月13日被记录 前提: 坐标使用右手坐标系,角度逆时针旋转为正。 绕X轴旋转角度为 俯仰角 即Pitch 绕Y轴旋转角度为 偏航角 即Yaw(Head) 绕Z轴旋转角度为 翻滚角 即Roll 1、平面二维坐标点的旋转 根据三角函数关系,可以列出向量OP与OP'的坐标表示形式: 阅读全文
此篇文章在2023年9月13日被记录 前提: 坐标使用右手坐标系,角度逆时针旋转为正。 绕X轴旋转角度为 俯仰角 即Pitch 绕Y轴旋转角度为 偏航角 即Yaw(Head) 绕Z轴旋转角度为 翻滚角 即Roll 1、平面二维坐标点的旋转 根据三角函数关系,可以列出向量OP与OP'的坐标表示形式: 阅读全文
posted @ 2024-12-13 14:39
shumei52
阅读(608)
评论(0)
推荐(0)
摘要:
此篇文章在2023年9月7日被记录 你是否对C语言命令行黑框感到厌倦,今天来为你的C编程增加一些可视化窗口吧! 1、windows下安装C编译器 这对于一个开发者来说简直是太业余了,如果你是一个开发者,你的电脑上怎么会没有gcc呢,如果你是一个新手,可以转到这个链接:https://zhuanlan 阅读全文
此篇文章在2023年9月7日被记录 你是否对C语言命令行黑框感到厌倦,今天来为你的C编程增加一些可视化窗口吧! 1、windows下安装C编译器 这对于一个开发者来说简直是太业余了,如果你是一个开发者,你的电脑上怎么会没有gcc呢,如果你是一个新手,可以转到这个链接:https://zhuanlan 阅读全文
posted @ 2024-12-13 14:29
shumei52
阅读(438)
评论(0)
推荐(0)
摘要:
此篇文章在2022年8月23日被记录 1、什么是IPC 在做一个比较简单的项目时,我们可以使用全局变量等作为标志位进行逻辑判断,但是在功能较多的项目上时,使用全局变量作为程序间的标志位当然是不可行的,代码将会混乱且复杂,不利于解耦,因此需要使用到IPC(Interprocess communicat 阅读全文
此篇文章在2022年8月23日被记录 1、什么是IPC 在做一个比较简单的项目时,我们可以使用全局变量等作为标志位进行逻辑判断,但是在功能较多的项目上时,使用全局变量作为程序间的标志位当然是不可行的,代码将会混乱且复杂,不利于解耦,因此需要使用到IPC(Interprocess communicat 阅读全文
posted @ 2024-12-13 14:27
shumei52
阅读(223)
评论(0)
推荐(0)
摘要:
此篇文章在2023年8月8日被记录 1、概述 IIC(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器以及其外围设备,IIC也被称为I2C,其实两者是完全相同的。它是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。两根 阅读全文
此篇文章在2023年8月8日被记录 1、概述 IIC(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器以及其外围设备,IIC也被称为I2C,其实两者是完全相同的。它是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。两根 阅读全文
posted @ 2024-12-13 14:24
shumei52
阅读(216)
评论(0)
推荐(0)
摘要:
此篇文章在2023年7月27日被记录 1、Physac介绍 Physac是一个开源的物理引擎,所有代码实现在头文件中,仅仅有2100行代码,移植接口只需要一个画线函数,因此很容易移植到嵌入式设备等,GitHub地址为https://github.com/victorfisac/Physac 2、引擎 阅读全文
此篇文章在2023年7月27日被记录 1、Physac介绍 Physac是一个开源的物理引擎,所有代码实现在头文件中,仅仅有2100行代码,移植接口只需要一个画线函数,因此很容易移植到嵌入式设备等,GitHub地址为https://github.com/victorfisac/Physac 2、引擎 阅读全文
posted @ 2024-12-13 14:19
shumei52
阅读(148)
评论(0)
推荐(0)
摘要:
此篇文章在2023年7月10日被记录 1、简述状态机 在C语言编程中,可以使用状态机来实现复杂的控制流程和状态管理。 状态机通常由以下几个组成部分构成: 状态(State):系统或程序可能处于的不同状态,例如"待机"、"运行"、"暂停"等。每个状态代表了系统或程序的一种行为或模式。 事件(Event 阅读全文
此篇文章在2023年7月10日被记录 1、简述状态机 在C语言编程中,可以使用状态机来实现复杂的控制流程和状态管理。 状态机通常由以下几个组成部分构成: 状态(State):系统或程序可能处于的不同状态,例如"待机"、"运行"、"暂停"等。每个状态代表了系统或程序的一种行为或模式。 事件(Event 阅读全文
posted @ 2024-12-13 14:15
shumei52
阅读(492)
评论(0)
推荐(0)
摘要:
此篇文章在2023年6月27日被记录 调度器 上下求索,方可得道之精髓 引言 我还在学校的时候,实验室有一个学长在B站发布了这么一个视频,B站链接在这里,并且将代码开源在github,取名为suos,对于当时的我来说,实时操作系统是一个很新鲜的东西,特别是当看到代码里面的两个函数中的while(1) 阅读全文
posted @ 2024-12-13 14:13
shumei52
阅读(162)
评论(0)
推荐(0)
摘要:
此篇文章在2023年6月14日被记录 1、介绍 easy_shell是由纯C语言编写,运行于嵌入式设备上的shell,通过串口作为命令传入,调用程序中的函数,相比于litter-shell削减了很多用不上的功能,本组件shell.c只有三百多行,简单易用好理解,目前支持且仅支持int类型、char类 阅读全文
此篇文章在2023年6月14日被记录 1、介绍 easy_shell是由纯C语言编写,运行于嵌入式设备上的shell,通过串口作为命令传入,调用程序中的函数,相比于litter-shell削减了很多用不上的功能,本组件shell.c只有三百多行,简单易用好理解,目前支持且仅支持int类型、char类 阅读全文
posted @ 2024-12-13 14:10
shumei52
阅读(146)
评论(0)
推荐(0)
摘要:
前言 前景提要:曾经做过一个迷你Linux小电脑,自己画了个四层板,有gpio、屏幕、USB等外设,并且在Ubuntu系统下编译固件,驱动屏幕等外设,最终也算是写了一个小型QT程序,读取图片并且联网通过访问API的方式识别图片中的内容。但是从始至终,一直游荡于论坛,没有潜下心来学习学习linux驱动 阅读全文
posted @ 2024-12-13 14:03
shumei52
阅读(335)
评论(0)
推荐(0)
摘要:
此篇文章在2023年5月24日被记录 全志H3直播推流 1、系统镜像烧录 系统镜像尽量使用linux或者ubuntu原版镜像,不要使用不安全的三方镜像,我在这里使用friendlycore的卡刷包,代号focal,实际上就是ubuntu20.04,先使用工具烧录到内存卡里,然后插在机器上,使用efl 阅读全文
posted @ 2024-12-13 14:00
shumei52
阅读(125)
评论(0)
推荐(0)
摘要:
此篇文章在2023年5月23日被记录 RTOS-任务CPU占用统计 在项目开发过程中,有时会需要查看各个任务的资源占用,需要用到rtos的CPU使用统计,其原理也很简单,就是开一个频率特别高的定时器,rtos在运行过程累计各个任务的实际占用时长,继而统计显示 FreeRTOSConfig配置 //计 阅读全文
posted @ 2024-12-13 13:58
shumei52
阅读(428)
评论(0)
推荐(0)
摘要:
此篇文章在2023年5月15日被记录 很多嵌入式设备都对功耗有严格的控制,特别是消费电子对功耗的控制更为严格,Tickless是freertos中的一个可选模块,主要实现低功耗功能 STM32类芯片的低功耗模式 STM32之类的arm芯片通常有三种低功耗模式: 睡眠模式(sleep):仅CPU 时钟 阅读全文
此篇文章在2023年5月15日被记录 很多嵌入式设备都对功耗有严格的控制,特别是消费电子对功耗的控制更为严格,Tickless是freertos中的一个可选模块,主要实现低功耗功能 STM32类芯片的低功耗模式 STM32之类的arm芯片通常有三种低功耗模式: 睡眠模式(sleep):仅CPU 时钟 阅读全文
posted @ 2024-12-13 13:56
shumei52
阅读(883)
评论(0)
推荐(0)
摘要:
此篇文章在2023年4月26日被记录 fifo适用于多种场景,例如在串口中断中来不及接受数据,可以将数据先缓存起来,在任务中再进行处理 fifo也可以称为环形队列,填入数据时在头部填入,取数据从尾部取出 FIFO.c #include "fifo.h" #include "stdio.h" void 阅读全文
posted @ 2024-12-13 13:53
shumei52
阅读(84)
评论(0)
推荐(0)

浙公网安备 33010602011771号