自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Shell脚本编程之大括号扩展

在 Shell 中,大括号扩展(Brace Expansion),通常也被称为"花括号扩展",是一种非常有用的功能,用于生成一系列字符串或文件名。它允许用户通过简短的语法快速生成多个相似的字符串或路径。这种功能在批量创建文件、生成序列数据或简化命令输入时非常方便。可以帮助我们简化代码、提高效率。注意:①、空格敏感性:大括号内部不能有空格,否则会导致错误。         ②、未匹配时不扩展:如果大括号内没有有效的模式,原样输出。         ③、与通配符的区别:大括号扩展与通配符(如 *、?)不

2025-04-03 17:22:52 497

原创 Shell脚本编程之运算符应用

Shell 和C/C++语言类似,支持多种运算符,包括:①、算数运算符②、关系运算符③、布尔运算符④、字符串运算符⑤、文件测试运算符提醒:原生的bash脚本并不支持简单的数学运算,但可以通过awk和expr等命令来实现简单的数学运算, 其中较为常见的是expr。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。

2025-03-23 14:45:25 960

原创 Shell脚本编程之流程控制

shell中的流程控制语句包括条件判断、循环结构和​流程控制命令等。Shell 脚本的流程控制在 ​嵌入式开发 和 ​Linux 运维 中扮演着至关重要的角色,能够实现自动化、资源管理和系统监控等核心任务。

2025-03-15 16:57:52 684

原创 Shell脚本编程基础篇(2)

shell编程就是通过shell语法将shell命令组合起来,写入一个文件中。将来运行这个文件时,就会执行里面的每一行shell语法,这个文件称之为shell脚本文件。通过shell脚本实现更加自动化和智能化。shell脚本就是实现Linux系统自动管理以及自动化运维所必备的工具,Linux 的底层以及基础应用软件的核心大都涉及 Shell 脚本的内容。本文将紧接上文,继续讲解shell的应用。

2025-03-10 21:49:43 811

原创 Shell脚本编程基础篇(1)

shell在英文中翻译为"贝壳",在贝壳内部就是linux系统内核,在贝壳外部就是用户。Shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。Shell 本身并不是内核的一部分,它只是站在内核的基础上编写的一个应用程序。对于shell而言,就是用户与内核之间的媒介。

2025-03-07 15:33:58 897

原创 Altium Designer 23打开Cadence Allegro原理图及PCB工程文件

 这篇博文的内容主要介绍如何在Altium Designer23中,打开Cadence Allegro的原理图及PCB工程文件。        在进行转换前,需要提前安装Altium Designer和Cadence软件。如果仅安装了Altium Designer,是无法正常转换打开Cadence Allegro的原理图和PCB文件的。建议这两个软件,安装发布时间相近的。

2025-02-22 17:50:33 1443

原创 Altium Designer 23原理图编译Net XXX has no driving source警告

本文着手对工程中的几个元器件的引脚出现了Net XXX has no drving source警告进行解决。有如下两种解决办法:(1)、修改元器件引脚电气属性,(2)、忽略屏蔽电气属性检测功能

2025-02-16 19:50:19 614

原创 Altium Designer 23原理图编译Duplicate Net Names Wire xxx报错

针对Altium Designer软件中原理图编译时出现的Duplicate Net Names Wire xxx错误,有效的解决措施如下:(1)、修改网络标签作用范围,(2)、离图连接器和网络标签不能同名

2025-02-16 13:04:16 784

原创 网络编程 | HTTP协议梳理及编程实现经验教程

HTTP协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是一种用于从网络传输超文本到本地浏览器的传输协议。它定义了客户端与服务器之间请求和响应的格式。传统的HTTP 工作在 TCP/IP 模型之上,通常使用端口 80。最近的 HTTP/2 和 HTTP/3 则使用了更先进的传输层协议,例如基于 TCP 的二进制协议(HTTP/2)或基于UDP的 QUIC 协议(HTTP/3)。

2025-01-23 15:53:56 748

原创 网络编程 | UDP组播通信

组播是介于单播与广播之间,在一个局域网内,将某些主机添加到组中,并设置一个组地址。将数据发送到组播地址时,加入到该组的所有主机都能接收到数据。组播是主机间一对多的通信模式, 组播是一种允许一个或多个组播源发送同一报文到多个接收者的技术。类似于生活中较为常见的群聊功能,在群内的所有群员,都可以在群内发送消息给群友,也可以接收到来自任意群友的消息。

2025-01-20 21:19:34 1375

原创 网络编程 | UDP广播通信

广播是计算机网络通信中的一种通信模式,它的主要特点是将数据包发送到网络上的所有设备,而不是特定的单个设备。这种通信模式被广泛用于局域网络(LAN)中,用于向网络中的所有设备广播消息。只有用户数据报套接字(使用UDP协议)才能广播。UDP(用户数据报协议)广播是一种网络通信方式,它允许信息在同一局域网内的所有设备之间共享。

2025-01-18 21:38:17 1498

原创 网络编程 | UDP套接字通信及编程实现经验教程

TCP协议在网络通信中占主导地位,绝大多数的网络通信借助TCP协议完成数据传输。但UDP也是网络通信中不可或缺的重要通信手段。相较于TCP而言,UDP通信的形式更像是发短信。不需要在数据传输之前建立、维护连接。只专心获取数据就好。省去了三次握手的过程,通信速度可以大大提高,但与之伴随的通信的稳定性和正确率便得不到保证。因此,我们称UDP为“无连接的不可靠的报文传输协议”。

2025-01-18 19:11:42 1422 2

原创 网络编程 | TCP套接字通信及编程实现经验教程

TCP/IP协议簇中包含了如TCP、UDP、IP、ICMP、ARP、HTTP等通信协议。TCP协议是TCP/IP协议簇中最为常见且重要的通信方式之一,它为互联网上的数据传输提供了可靠性和连接管理。TCP(Transmission Control Protocol,传输控制协议)是面向连接的、可靠的、基于字节流的传输层通信协议。它主要用于在不可靠的互联网上提供可靠的数据传输。TCP被广泛应用于各种网络应用中,如Web浏览(HTTP/HTTPS)、电子邮件(SMTP、POP3、IMAP)、

2024-12-08 16:01:01 1795 1

原创 Linux修改系统及终端命令行中的用户名

Linux中,修改系统及终端命令行中的用户名数据信息。

2024-11-30 20:20:40 1605

原创 VS2022对代码文件添加管理注释说明信息

VS2022对代码文件添加管理注释说明信息!

2024-11-30 17:00:22 827

原创 MATLAB的语音信号采集与处理分析

本文主要介绍了一种基于MATLAB的语音信号采集与处理系统的设计与实现。设计这个系统时为了提供一个交互式平台,用于语音信号的实时采集、分析和处理。系统实现的功能有:通过内置麦克风采集外部音频信号,绘制信号时域波形;利用快速傅里叶变换技术进行频谱分析,将信号的频率成分可视化;进行噪声叠加,模拟各种的噪声干扰;采用巴特沃斯滤波器进行信号滤波,去除噪声干扰;应用小波分解技术进行噪声抑制,提高信号质量;最后是实现了录音播放功能,可以更直观感受处理前后信号的变化。

2024-11-20 14:06:19 2133 2

原创 ODrive V3.6固件上位机ODriveGUI软件使用配置经验教程

本文着眼于实现ODriveGUI连接控制V3.6设备。ODrive v3.6版本后,ODrive最新的软件和硬件都已经不开源了,并且ODrive官方的网页GUI,也是只适用于最新的ODrive设备,ODrive v3.6及以下的版本是无法正常使用的。如果需要正常使用ODrive的网页上位机,需要从ODrive官网购买正版的开发板。ODrive的GUI应用程序也因为开发的时间较为久远,且插件应用程序的不断更新,在大部分的系统环境下,已经无法正常运行检测ODrive设备了。

2024-09-26 15:47:24 2509

原创 ODrive电机驱动算法VScode环境配置笔记教程

本文是对于ODrive电机驱动算法在VScode环境配置笔记教程!ODrive 是一个开源的优秀电机控制器项目,旨在为各种应用提供高性能、高可靠性的电机控制解决方案。这个项目是专门用于驱动无刷直流电机(BLDC)和永磁同步电机(PMSM)的高性能开源伺服控制系统。

2024-09-21 19:53:46 2070

原创 LVGL从SD卡读取图片并显示到MCU LCD屏详细笔记教程

LVGL支持BMP、PNG、JPG和GIF的图片显示,LVGL在MCU设备上显示图片主要如下3种方法:1、将图片转码成源代码,编译时,一起编译到程序代码中2、将图片转码成二进制bin文件,将图片拷贝到SD卡中,程序运行时进行读取显示3、将图片直接拷贝到SD卡中,通过LVGL的解码库解析显示图片。本文重点讲解如何使用LVGL在MCU设备上读取SD卡上的图片文件显示。

2024-08-27 18:09:54 4577 5

原创 BMP位图原理深度解析及编程实现RGB565图片格式转换

BMP:BMP(位图)是一种没有经过压缩的图像格式。图片的大小取决于图像的分辨率和颜色深度。BMP位图因为没有任何的压缩,因此文件尺寸都比较大,不适合在互联网上传播,优点是数据读取出来即可使用,无需任何解码器支持。

2024-08-26 21:47:57 2287 2

原创 LVGL配置FatFs文件系统,实现对STM32的SD卡数据读写

LVGL 有一个文件系统模块,可为各种类型的文件系统驱动程序提供一个通用的抽象层接口。本文将LVGL与FatFs文件系统联系起来,实现LVGL的文件系统模块对SD卡内的文件进行读取和写入等操作。

2024-08-24 17:14:46 3567

原创 Sqlite3数据库表内数据批量读取操作---sqlite3_stmt机制

sqlite3_stmt是 SQLite 数据库在 C 语言接口中使用的一个关键数据结构,它代表了一个“准备语句对象”(prepared statement object),也是一个预编译的 SQL 语句,预编译 SQL 语句可以提高执行效率并防止 SQL 注入攻击。这个对象是对 SQL 语句的一种封装,该 SQL 语句已经被编译成字节码形式,可以直接由 SQLite 的虚拟机执行。如果只是读取一条数据时,使用sqlite3_exec和sqlite3_stmt效率是一样的,但是当涉及到大批量的操作时,此前

2024-08-23 18:06:42 1399

原创 DLT645-2007通信协议---读取解析智能电表数据

DLT645-2007是中国电力行业规定的一种智能电表通信协议,主要用于电能表与数据采集设备之间的通信。DLT645-2007协议定义了电能表与数据采集设备之间的数据格式、通信方式、命令集等内容,用于实现电能表数据的采集、传输和管理。该协议支持多种物理通信方式,包括RS-485总线通信、红外通信和无线通信等。

2024-08-12 16:13:36 8271 1

原创 printf函数进阶---个性化彩色打印日志调试

在标准的C语言或C++中,printf 函数本身并不支持直接打印彩色文本。可以通过向终端发送特定的转义序列(ANSI转义序列)来改变文本的颜色和样式。使用printf输出日志的颜色信息,可以实现对终端打印输出的信息非常清晰明了的区分出来,将其运用到实际的项目代码中,可以更加直观的了解程序的运行状态,辅助开发者进行程序调试和优化等。

2024-08-10 21:03:10 685

原创 MDK KEIL程序代码编译成静态库文件及库引用笔记教程

在商业性的程序代码或软件中,各种静态库、动态库是非常常见的。甚至有许多的开源程序,其开放的源码工程中,也有一些程序代码是并不对外开放的,以一个静态库或动态库和一个头文件及部分说明文件的方式提供给用户,许多的核心实现细节,我们是不能直接看到的。并且,对于已经在企业工作过的开发者,对于这种方式已经习以为常了,但是依然有许多的学生群体及初入工作岗位经验不足的开发者,对于如何将源代码编译成库文件和对库文件的重要性是比较缺少认识的。

2024-07-15 17:08:40 1436

原创 MinGW编译器任意版本使用配置经验教程

MinGW(Minimalist GNU for Windows)是一个允许开发者在Windows平台上编译原生Windows应用程序的软件环境。MinGW的目标是在不引入额外的运行时依赖的情况下,能够在Windows上创建独立的应用程序。这意味着使用MinGW编译的程序不需要额外的运行时库,除非程序本身链接了这些库。在Windows环境下进行C/C++开发,MinGW提供了一个轻量级的替代方案,避免了使用像Microsoft Visual Studio这样的大型IDE。

2024-07-08 17:45:35 3508 1

原创 CANopen协议---PDO使用配置

CANopen的PDO 和 SDO 的通讯上面的区别在于,PDO 属于过程数据,即单向传输,无需接收节点回应CAN 报文来确认,从通讯术语上来说是属于“生产消费”模型。

2024-07-08 17:29:54 3711

原创 CANopen协议开发梳理总结笔记教程

CANOpen协议是一种架构在控制局域网络(Controller Area Network, CAN)上的高层通信协议,它广泛应用于工业自动化、机械工程和汽车电子等领域。CANOpen协议通过对象字典、服务数据对象(SDO)、过程数据对象(PDO)等机制,为机器人、运动控制、过程控制、楼宇自动化、交通运输等行业提供了一种标准化的通信解决方案。

2024-07-05 16:33:11 2399 4

原创 LVGL使用GUI Guider配置STM32界面详细笔记教程

GUI Guider是NXP公司为LVGL开发的一个GUI设计工具,用户可以通过直接拖放控件来设计 LVGL的GUI页面,加速 GUI的设计,并且可以导出与硬件平台无关的c语言、Python代码,非常简单方便的加入到项目中。

2024-06-20 21:52:19 9087 5

原创 SQLite 3 优化批量数据存储操作---事务transaction机制

SQLite3的数据库事务transaction操作目的是为了保证数据的一致性和完整性,开启事务操作,可以提升数据库系统性能提升,优化数据错误处理机制。

2024-06-20 14:28:37 2372

原创 FatFs R0.15文件系统移植到MCU平台详细笔记经验教程

在嵌入式MCU平台移植适配FatFs R0.15的详细经验笔记教程!

2024-05-30 19:07:34 2279 6

原创 LVGL显示中文字体及其它语言文字详细笔记教程

LVGL显示中文字体及其它语言文字详细笔记教程!

2024-05-24 17:56:30 9135 2

原创 LVGL移植到STM32 MCU平台详细经验笔记教程

LVGL是一个开源的ui图形库,能跑在各种单片机上(树莓派、荔枝派也行)。支持按钮,触摸,编码器旋钮,鼠标等输入设备。支持高级图形效果,动画、反锯齿、透明度等。本文详细讲解,如何将LVGL移植到嵌入式MCU设备中,如STM32、GD32等。

2024-05-23 13:09:25 5241 2

原创 嵌入式数据库SQLite 3配置使用详细笔记教程

随着管理开发的项目体积越来越庞大,产品系统涉及的数据量也越来越多,并且伴随着项目不久就要交付给甲方了。如果项目的数据信息没有被妥善管理,后期设备的运行状态、操作状况等数据流信息不能被溯源,当出现了一些特殊意外时,就会导致对于故障信息不能迅速准确的追踪,甚至会被甩锅、推卸责任,白白当了冤大头。因此对于嵌入式项目中,其产品运行时的数据库建立非常有必要,且是迫在眉睫!!!目前常用的数据库系统有:MySQL、PostgreSQL、Oracle Database、Microsoft SQL Server、SQLit

2024-05-08 19:16:04 3875 1

原创 STM32标准库+HAL库 | CPU片内FLASH存储器数据掉电读写

如果只是做单个原型设备,那么一个小存储器芯片的价格可能是不痛不痒的,但对能进行大批量生产的电子产品,成本压缩几毛钱,都能创造一笔不菲的收入,甚至节约下来的成本可以供很多工程师的月工资。因此对于数据存储量不是很大的设备产品,就可以考虑直接使用MCU内置的FLASH进行数据掉电存储读写。

2024-04-16 17:07:23 3018 3

原创 嵌入式MCU BootLoader开发配置详细笔记教程

对于接触过嵌入式Linux系统开发的开发者们,想必对BootLoader是不陌生的,因为定制化移植Linux系统,最先接触的就是BootLoader程序。但如果是从单片机MCU起步的开发者,可能对BootLoader就不是那么熟悉了,因为单片机开发最先接触的往往是GPIO外设的驱动开发。但不管是嵌入式Linux的MPU开发,还是嵌入式单片机的MCU开发,BootLoader的功能都是一样的。它是嵌入式系统中一种特殊的软件程序,它在系统加电或复位后最先执行,负责初始化硬件设备、设置系统环境,并最终引导加载操作

2024-04-14 14:34:16 6457 9

原创 128天创作纪念日

起初写博客,就是为了分享自己所学的东西,希望能帮助到别人,在最初学一些技术类的东西时,很艰难,又没有教,没人带,十分痛苦。后面在网上查阅的资料越来越多,特别是优快云博客论坛上,有很多人影响到了我,所以开始学着他们的步伐,去分享自己的笔记文章,让更多的人在初学起步的时候,不会那么艰难。在博客上刚起步的时候,是十分的艰难,没有什么idea,也不知道写什么东西,后面学习的东西越来越多,发现经常会遗忘,就开始记笔记,起初是在有道云笔记上面写的,后面就直接到优快云博客上开始记录笔记并且分享。

2024-03-14 22:29:56 537

原创 SPI通信协议详解及编程实现笔记教程

SPI,全称为Serial Peripheral Interface,是一种串行外设接口。由Motorola(摩托罗拉)公司(现为NXP Semiconductors的一部分)最早推出的同步串行通信接口标准,主要用于微控制器和其他外围设备之间的高速、全双工数据交换。SPI协议允许在一个主设备(Master)和一个或多个从设备(Slave)之间建立连接,主设备负责生成时钟信号并控制数据传输。当前,SPI广泛应用于各种嵌入式系统中,如SD卡、RFID、LCD屏幕、网络通信PHY以及其他需要快速可靠数据交换的器件

2024-03-14 22:13:24 4568 1

原创 LVGL在VScode中安装模拟器运行配置笔记教程

LVGL(Light and Versatile Graphics Library,轻巧而多功能的图形库)是一个免费的开放源代码图形库,它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。本文主要讲述如何实现在VScode中实现LVGL模拟器环境的搭建运行。

2024-03-07 16:12:11 27632 160

原创 嵌入式物联网在线仿真平台Wokwi使用配置笔记教程

Wokwi是一个强大且实用的在线免费使用的嵌入式系统与物联网应用模拟器,它允许用户在无需实际物理硬件的情况下,在虚拟环境中构建详尽的电路图、编写并实时运行ESP32、STM32、Arduino以及树莓派Pico等主流微控制器的代码。对于企业级工程项目开发而言,虽然可能在某些复杂度高或特定硬件交互场景下显得功能有限,但Wokwi无疑为电子DIY爱好者、学校教学和远程居家开发者提供了极为便捷且成本低廉的学习与开发环境。

2024-03-05 15:56:31 8759 5

STM32移植LVGL+FatFs+FreeRTOS综合工程代码

在STM32F407开发板,针对MDK KEIL v5软件平台上,移植实现LVGL+FatFs+FreeRTOS的完整工程代码。 FatFs R0.15移植教程:https://blog.youkuaiyun.com/weixin_49337111/article/details/139332023?spm=1001.2014.3001.5501 LVGL移植教程:https://blog.youkuaiyun.com/weixin_49337111/article/details/139142416?spm=1001.2014.3001.5501 LVGL图片显示教程:https://blog.youkuaiyun.com/weixin_49337111/article/details/141609089?spm=1001.2014.3001.5501 FreeRTOS移植教程:https://blog.youkuaiyun.com/weixin_49337111/article/details/135079595?spm=1001.2014.3001.5501

2024-08-28

LVGL移植到STM32 MCU平台通用程序源码

LVGL移植到STM32 MCU平台详细经验笔记教程 LVGL移植教程链接:https://blog.youkuaiyun.com/weixin_49337111/article/details/139142416?spm=1001.2014.3001.5502 本程序为上述教程中的程序源码,目标平台为STM32F407VET6,使用了LVGL v8.3版的库,经测试,代码运行正常。仅供参考交流学习,如有问题,欢迎交流讨论。

2024-05-23

嵌入式MCU BootLoader开发配置工程Demo

嵌入式MCU BootLoader开发配置详细笔记教程中的工程demo资源文件 博客文章链接:https://blog.youkuaiyun.com/weixin_49337111/article/details/137680267?spm=1001.2014.3001.5502 BootLoader和APP应用程序的启动跳转切换,原理上就是内存地址的切换,当BootLoader程序接收到对应的操作触发条件时,会进行相应的地址跳转切换,及一些其它的附加操作,然后执行该地址空间上的用户程序。但一般来说,BootLoader中会进行CPU工作模式、配置内存控制器、初始化外设等工作,为后续程序运行创建一个稳定的硬件环境。所以在APP中可以节省掉BootLoader中已经进行过的硬件环境配置。

2024-04-14

SDL2支持文件,SDL2-devel-2.30.1-mingw.zip

VScode中安装LVGL模拟器所使用的依赖下载文件,SDL2-devel-2.30.1-mingw.zip 安装LVGL模拟器的教程如下 https://blog.youkuaiyun.com/weixin_49337111/article/details/136536375#comments_31930883

2024-03-28

ESP32接入网络后,循环扫描服务器IP及端口是否在线的完整工程demo(ESP-IDF)

ESP32接入网络后,循环扫描服务器IP及端口是否在线的完整工程demo(ESP-IDF) 本资源详细描述的优快云博客文章说明:https://blog.youkuaiyun.com/weixin_49337111/article/details/135305996?spm=1001.2014.3001.5501

2024-01-09

STM32移植FreeRTOS正常运行的工程源代码

STM32移植FreeRTOS,经测试验证能正常运行的工程源代码,STM32F407,STM32F103系列,其它版本后续更新,所使用的库为ST官方于2022年更新的标准库(对的,没有写错,是2022版最新的STM32标准库)。 FreeRTOS移植可参考本人的优快云博客:https://blog.youkuaiyun.com/weixin_49337111/article/details/135079595?spm=1001.2014.3001.5502 如有问题,欢迎交流讨论。

2024-01-03

空空如也

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

TA关注的人

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