- 博客(137)
- 资源 (1)
- 收藏
- 关注
原创 Linux 进程间通信(IPC)
管道(Pipe):父子进程之间通过管道传输数据。消息队列(Message Queue):进程间传递消息,可以支持多个进程通信。共享内存(Shared Memory):多个进程直接访问共享内存区。信号量(Semaphore):用于进程间的同步和互斥控制。如果需要高效的数据交换,共享内存是一个非常好的选择。如果需要管理多个进程之间的消息,消息队列可能更适合。
2025-09-01 21:54:23
267
原创 VS Code ESP-IDF无法找到源文件、头文件波浪线解决
背景:想要编译小智AI项目,可以正常编译。但是一些头文件,例如#include <nvs.h>等无法找到。
2025-08-29 15:37:21
342
原创 笔记:C语言中指向指针的指针作用
**指向指针的指针**是 C 语言中一个非常有用的特性,特别是在 **动态内存分配**、**修改指针值** 以及 **操作多维数组** 时。通过指向指针的指针,我们可以方便地在函数中修改外部传入的指针,从而实现灵活的内存管理和优化。
2025-08-02 19:38:33
300
原创 记录一次ESP32报错Guru Meditation Error: Core 1 panic‘ed (Double exception).
记录一次报错Guru Meditation Error: Core 1 panic'ed (Double exception).
2025-08-02 18:07:09
274
原创 树莓派5安装miniconda和face_recognition
本文详细介绍了在树莓派5(64位系统)上安装人脸识别环境的完整流程。首先通过Miniconda创建Python环境,然后安装face_recognition库及其依赖。文章提供了详细的安装步骤和配置方法,包括系统架构确认、国内镜像加速等优化措施。最后给出了一个实用的Python测试脚本,该脚本能够识别人脸并与数据库比对,支持新面孔的自动裁剪和保存功能,包含完整的文件结构和操作说明。整个方案经过实际验证,适合在树莓派上构建基础的人脸识别系统。
2025-07-27 13:40:52
597
原创 FreeRTOS学习笔记——常用函数说明
本文总结了FreeRTOS中任务管理和消息队列的核心功能。任务管理部分介绍了7个关键函数:xTaskCreate()创建任务、vTaskDelete()删除任务、vTaskSuspend()/vTaskResume()挂起恢复任务、vTaskPrioritySet()调整优先级、xTaskGetTickCount()获取系统时钟、vTaskDelay()实现任务延迟。消息队列部分包含3个主要函数:xQueueCreate()创建队列、xQueueSend()发送数据到队列、xQueueSendToBack(
2025-07-17 14:56:43
912
原创 FreeRTOS学习笔记——移植说明、任务创建
摘要:本文介绍了在CH32V307开发板上移植FreeRTOS的动态创建方法。主要内容包括:1) 移植关键点,如保留核心文件(include/.c)、portable文件夹(GCC/MemMang/Common)和FreeRTOSConfig.h;2) 关键修改:实现周期中断任务切换(portYIELD)、系统时钟初始化(vTaskStartScheduler)及相关中断代码;3) 配置参数详解,包括调度模式(configUSE_PREEMPTION)、时钟频率(configTICK_RATE_HZ)、内存
2025-07-15 10:55:22
409
原创 FreeRTOS学习笔记——总览
FreeRTOS开发规范与命名约定 摘要:本文介绍了FreeRTOS实时操作系统的特点、优势及适用场景,并详细阐述了其命名规范与开发准则。FreeRTOS作为轻量级开源RTOS,支持多任务调度和多种硬件架构,适合资源受限的嵌入式系统。文中系统梳理了函数、参数、结构体的命名规则:函数采用"动词+名词"结构(如createTask),参数使用小写驼峰法(taskHandle),结构体采用大驼峰命名(TaskConfig)。同时分析了FreeRTOS的优缺点,指出其虽功能精简但调试较难的特性,
2025-07-15 10:08:16
980
原创 Vue 3 入门——自学习版本
Vue.js 是一个用于构建用户界面的渐进式框架。它采用了响应式的数据绑定和组件化的开发模式,使得开发者可以高效地构建现代化的单页面应用(SPA)。Vue 3 是 Vue.js 框架的最新版本,在 Vue 2 的基础上做了许多改进和优化,特别是在性能和可维护性方面。Vue 3 的开发始于 2018 年,由尤雨溪(Evan You)主导,Vue 3 于 2020 年发布。
2025-07-11 19:56:31
685
原创 FOC控制中的正弦PWM和空间矢量PWM对比与理解
2. 极对数:其中,多极线圈的极对数会对应放大电圈数和实际圈数的比值,例如下面极对数为1,实际与电控转一圈一致;当极对数为2时,转1圈会导致磁场产生类似2圈的变化,因此控制的时候,需要产生相比于极对数为1的2倍周期电流,让实际的转子转一圈。而空间矢量PWM利用矢量合成技术得到,实际上在\alpha轴时Ua不应该为最大,而应该在角度为30度时,Ua最大,通过Uc为负值最大。3. 三相无刷电机的6分区:针对上述的三相电机,可以将一圈分成6个分区进行控制,每个分区60°,这对于后面的空间矢量PWM有重要意义。
2025-04-20 22:31:24
520
原创 单片机C语言如何实现类似于C++的类
结构体 + 函数指针:模拟类的成员变量和成员函数。动态内存分配:支持动态创建和销毁多个实例。上述方法1中较为普遍;方法2通过malloc和free自由创建和销毁,但malloc的成功与否和时间都不确定,容易导致出错,不符合单片机的real time要求。根据具体需求选择合适的方法,通常推荐使用结构体和函数指针的方式,因为它更接近面向对象的编程思想。
2025-04-05 11:11:42
391
原创 F1C200S编译
uboot教程:https://wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/get_started/first_eat.html。boot.scr教程:https://wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/build_sys/bootargs.html。uboot通过dd指令进行烧录,uboot烧录教程:https://github.com/peng-zhihui/Planck-Pi。
2025-03-26 23:40:01
898
原创 小米路由器R3G刷OP和Tailscale——2025年3月11日
之前刷过OP,并且配置了需要的配件,发现少了一个Tailscale,鼓捣着死机了,只能重新刷机过。选择了最好用的固件,在此基础上,进行安装Tailscale。默认已经安装好了不死breed,在次基础上进行安装和配置。
2025-03-11 22:21:04
1159
原创 红外人体传感器选型和电路解析
背景:想要制作一套IoT系统,基于HA构建上层管理,蓝牙和蓝牙MESH构建无线网络,以及多种传感器和控制器作为底层,其中人体红外传感器作为一个重要的选项,需要考虑好。优点是极低的功耗,一般小于20uA,利用电池或干电池,搭配低功耗蓝牙mesh可以运行几年。红外人体传感器一般只能感应到人的动态变化,而不是人在传感器,因此有一定的缺陷。
2025-02-22 16:39:33
717
原创 一个简单的ubuntu/开发板初始化脚本
创建一个脚本,用于安装必要组件和docker。以下是针对nano pi M1,使用的是H3芯片,因此docker用的源是arch=armhf,需要根据需求进行修改。
2025-02-15 20:04:23
383
原创 快速构建一个好用的ros master
一台安装有ubuntu20的小电脑需求是安装好ros,并配置开机自动运行roscore作为rosmaster,以及启动rosbridge。
2024-12-26 15:30:17
496
原创 Unraid实现相册同步与展示的方案探讨
背景:Unraid作为一个NAS系统,能够实现基本的NAS文件管理功能,但是不提供额外的功能如影音、同步、办公、和内网穿透等,这些在其他的NAS产品如群晖、绿联、威联通等都是提供支持的。然而unraid也有其他方案,即通过特别方便的docker和虚拟机安装,来拓展所需功能。需求:手机上的照片越来越多、如何方便地将相册照片上传到NAS中并展示?
2024-12-12 20:15:58
1345
原创 使用TFT_eSPI绘制图片
背景:有一个带屏幕的RP2040开发板,通过PIO进行项目编译,其中用到了TFT_eSPI进行屏幕组件显示。为了更好看,需要在屏幕上显示图片、动态图。TFT_eSPI需要在选择屏幕驱动,根据屏幕进行选择,我这里是,后续显示需要使用到16位的RGB颜色空间格式。
2024-12-08 21:40:10
1024
原创 记录OrangePi Kunpeng Pro烧录系统到固态硬盘并扩容流程
之前通过硬盘盒将系统烧录到固态硬盘中,但是目前手头无固态硬盘,因此想的是通过SD卡的系统,里面的balena进行烧录。
2024-12-01 19:01:16
587
1
原创 AIR 780EP开发流程记录-AT方式
之前买过一个合宙的AIR 780EPV开发板,但是由于开发流程和之前的单片机差别较大,且需求明确,一直用不上。这里简单记录以AT方式开发该模块的流程,方便以后使用。
2024-11-16 22:18:38
537
原创 记录——记一次LDO功耗测量
一、最小板说明CH582F芯片,上面仅一个LDO。供电通过引脚供电,而不是type C接口,似乎因为type C接口增加了5.1k的cc引脚下拉电阻,导致功耗增加了150uA。启动后直接让CH582F进入休眠模式,芯片手册说是0.2uA。二、功率测量测量三款,其中XC6206——TOREX版本的功耗最低。其他两款也不差。
2024-10-22 16:48:01
446
原创 小米R3G刷机OP
22年购买了一个小米R3G路由器,刷OP系统后可以中继校园网,从而让智能开关、小爱同学可以联网。当年的价格还是55元,现在只需要30元了,价格越来越便宜,并且OP版本越来越完善了。之前刷机过breed系统,所以当前博客只是记录在breed的更新和重刷OP新固件。
2024-10-10 12:53:30
2098
原创 ESP8266使用AT指令完成MQTT功能
在esp8266设备中烧录安信可的AT固件之后,进行AT指令完成信息发布,并最终实现在Homeassistant中发布传感器并设置传感器状态。
2024-10-08 22:01:06
3353
原创 BLE MESH学习2——自定义MESH网络架构思考
基于对WCH CH582这款单片机的了解,其可以实现mesh配网、朋友节点、低功耗节点和中继节点的角色,基本功能无问题。在此基础上,考虑满足IoT需求的MESH架构设计,作为后续设计的“白皮书”。
2024-10-08 17:18:40
1000
原创 记一次N5105 NAS功耗测量
记一次N5105 NAS功耗测量一、设备说明HA500机器,N5105CPU,32GB内存。unraid最新6.12.13系统硬盘有一根500G M2硬盘和一个512G sata接口ssd硬盘,用于组成zfs raid 1,作为cache盘位。另外有三个4T机械硬盘,组成2+1的形式。超过30min后会自动休眠。运行了一个OP虚拟机,和多个docker。二、测量说明使用小米计量开关。测试一个晚上和白天一段时间使用的功耗。三、测量结果四、测量说明机械硬盘休眠时功耗保持在24
2024-10-07 15:40:58
2281
原创 BLE MESH学习1-基于沁恒CH582学习
蓝牙mesh 网络采用一种称为“网络泛洪(flooding)”的方式来发布和中继消息。为了避免数据堵塞,所有数据包都包含一个称为TTL(生存次数)的字段,它可用于限制消息中继的跳数。同时每台设备都包含消息缓存,以确定自身是否已经中继过该消息。一般情况下,所有节点都即可设置中继功能,从而创建鲁棒性高的网络。具有这些特性中的一个或多个,即表示节点可以在网络中扮演相应的。成为蓝牙mesh 网络中一员的设备被称为。,蓝牙mesh 规格定义了。
2024-10-05 15:17:50
1151
原创 记录一次docker报错无法访问文件夹,权限错误问题
make readableIf command(s) return error, run them under the user, owning corresponding files and folders. Alternatively, run them adding before the command: this will switch the execution context to user and ask for the root password. You have to have per
2024-10-03 23:12:27
1468
原创 Unraid的cache使用btrfs或zfs?
unraid缓存盘可以用来中转数据,实现更高速的写入和读取。缓存盘默认格式时xfs。为了保护数据,可以通过设置其他格式入zfs或btrfs进行raid镜像来处理。
2024-10-02 16:47:15
3186
Keil.STM32H7xx_DFP.2.5.0.zip
2020-05-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人