- 博客(137)
- 收藏
- 关注
原创 LVGL 8.3学习_lv_group_t解析
lv_group_t是 LVGL 中输入设备与 UI 控件之间的桥梁。它通过链表管理对象集合,通过位域控制交互细节,通过回调提供扩展能力,使得在资源受限的嵌入式设备上用按键/编码器操作复杂界面成为可能。
2026-11-04 09:52:42
340
原创 vivado2022安装无法进行的原因
意思是安装程序无法打开位于 G 盘的某个.xz压缩包。结合你截图中的文件路径来看,这个问题几乎可以确定是由**百度网盘(BaiduNetdisk)**下载引起的。
2026-07-28 15:36:43
192
原创 MSP430F5529LP开发板官方默认实例演示
将开发板连接到PC,板子会被识别成一个U盘,大小为127KB FAT。数据(即本文档)存储在 MSP430 的闪存中。键可用作换挡键,按下时会相应修改输出的字符串。本演示应用程序会在 USB 上枚举为。键将打印出 “msp430”。
2026-06-27 18:48:44
193
原创 串口发送中文乱码
MCU时钟配置正常,串口配置正常,上位机端ASCII码可用正常发送,而中文乱码。为了避免做无用功,先将原工程进行备份,下列操作对备份工程进行。点击设置,将编码类型改为ANSI。此时打开工程,看到乱码不要慌。
2026-05-18 15:34:49
54
原创 蚂蚁S9控制板简介(zynq-7010系列)
蚂蚁S9控制板是 Zynq-7010 的“工业废品”再利用。利用开源的原理图和 PYNQ 镜像,可以以极低成本实操 LUT、Slice 和 Zynq 架构等,是理论结合实践的完美跳板。
2026-05-03 19:29:01
1474
原创 zynq7010和zynq7020的区别
Zynq-7010 和 Zynq-7020 是 Xilinx(现 AMD)Zynq-7000 系列中两款常见的 SoC,主要区别在于。:相同封装的型号(如 CLG225/CLG400)引脚基本兼容,PCB 设计上可预留升级空间。但芯片供电需按资源多的型号设计。简单总结:处理器一样,7020 的 FPGA 部分更强(约 3 倍资源),适合更大规模的逻辑和算法处理。(双核 ARM Cortex-A9,主频最高 766MHz/1GHz)。
2026-05-03 18:12:26
445
原创 LUT(Look-Up Table,查找表)的定义与核心概念
在FPGA(现场可编程门阵列)中,LUT(查找表)是构成其基本逻辑单元(CLB,可配置逻辑块)的核心组件。LUT 是一种用“存储 + 查表”的方式来实现任意组合逻辑的硬件结构。它不是直接用物理门电路(如与门、或门)搭建逻辑,而是通过预先存储所有可能的输入组合对应的输出结果,再根据实际输入去“查表”得到输出。LUT 是 FPGA 的“逻辑积木”,它用存储查表的方式代替物理门电路,让 FPGA 能在硬件层面灵活实现任意组合逻辑,是 Zynq-7000 等可编程系统芯片实现高性能、高灵活性的核心基础。
2026-05-03 17:59:08
516
原创 Zynq-7000架构简介
General-Purpose Ports:属于AXI接口High-Performance Ports:高性能接口,属于AXI接口ACP接口:加速器一致接口,属于AXI接口,提供PL到PS存储器的低延迟访问AXI是ARM的AMBA总线的一部分AMBA总线即:高速微控制器总线架构AXI即:高级可扩展接口。
2026-05-03 16:39:40
425
原创 ZYNQ 简介
是由Xilinx(赛灵思)公司于2011年前后推出的一类革命性芯片,是业界首款将通用处理器(PS)与FPGA 可编程逻辑(PL)集成在同一芯片上的 SoC 架构。它不是简单的“处理器+FPGA”封装在一起,而是深度集成、高速互联、统一平台,实现了软硬件协同设计。PL 是 Zynq 的“硬件心脏”,即传统意义上的FPGA(现场可编程门阵列)部分。PS 是 Zynq 的“大脑”,基于ARM Cortex-A9 双核处理器。
2026-05-02 16:12:16
629
原创 SOC相对于版上系统的优势是什么?
特性板级系统(CPU + FPGA 各自独立)SoC(如 Zynq-7000)SoC 优势片间带宽有限(几 GB/s,PCIe 级别)极高(50-100+ GB/s,AXI 总线)100 倍+片间延迟微秒级(协议+物理传输)纳秒级(片内直连)1000 倍+功耗高(片间 I/O 驱动 + 独立外设)低(片内通信、共享资源)减少 50%~80%PCB 面积大(两个芯片+配套电路)小减少 50%~80%BOM 成本高(多个 IC、连接器、PCB 层数多)较低(单主芯片+简化外围)
2026-05-02 14:28:06
416
原创 Zynq-7000
Zynq-7000 是嵌入式系统中“软硬一体设计”的经典代表。它解决了传统“CPU 慢、FPGA 难编程”的痛点,让ARM 负责控制和系统,FPGA 负责加速和接口。尽管性能指标上已被后续的 UltraScale+ 和 Versal 系列超越,但它价格适中、生态成熟、资源丰富,至今仍在大量中低端工业、通信、嵌入式视觉产品中广泛应用,被公认为 SoC FPGA 领域的里程碑。如果你有更具体的应用场景(如是否要跑 Linux、是否需要高带宽处理),可以进一步告诉你如何选型或设计流程。
2026-05-02 14:08:24
490
原创 ARP缓存表查询
其中192.168.3.73是我电脑的IP地址,其余192.168.3.xxx是其他电脑的IP,物理地址即MAC地址,一台电脑对应一个IP地址和一个物理地址。查询命令arp -a。
2026-04-30 17:47:59
33
原创 嵌入式工程师如何避免陷入唯技术是论的死局
唯技术是论的表现破局思维与行动沉迷于最新的内核和框架先看需求,用最成熟、最稳定的技术解决问题代码写得只有自己能懂重构代码,使其符合规范,便于团队协作和维护认为硬件问题都该软件解联合调试,主动和硬件工程师讨论硬件优化的可能性只关心功能实现主动思考可靠性、测试、成本等系统工程问题排斥沟通和文档刻意练习写作和表达,将技术方案转化为商业价值最后,记住一句话:在工业界,无法量产、不可维护、用户不买单的技术,无论多高超,都是失败的技术。
2026-04-30 14:08:19
347
原创 LwIP三种编程接口的深度拓展与延伸
LwIP 接口:是“用户与协议栈的交互方式”,需根据场景(裸机/OS)、性能(高/低)、开发效率(快/慢)选择;以太网:是“协议栈的物理与数据链路基础”,需理解介质、编码、帧格式、访问控制的底层原理;关联:LwIP 通过以太网驱动(如)对接物理层,通过三种接口向上层应用提供服务,形成“硬件→链路层→网络层→应用层”的完整通信链。通过以上拓展,可从“单一知识点”延伸到“系统级理解”,既掌握 LwIP 接口的选型与应用,又深入理解以太网的底层原理,为嵌入式网络开发或协议栈优化打下坚实基础。
2026-04-30 13:56:47
410
原创 LWIP源码下载说明
打开LWIP源码包,打开src目录(以下截取《野火LWIP应用开发实战指南——基于STM32》部分内容)api文件夹里面装的是NETCONN API和Socket API相关的源文件,只有在操作系统的环境中,才能被编译。apps文件夹里面装的是应用程序的源文件,包括常见的应用程序,如httpd、mqtt、tftp、sntp、snmp等。core文件夹里面是LwIP的内核源文件。include文件夹里面是LwIP所有模块对应的头文件。
2026-04-30 09:59:11
267
原创 LwIP(轻量级IP协议栈)概述
LwIP的核心优势在于,它能在有限的硬件资源上实现一个完整的TCP/IP协议栈。官方数据显示,其典型运行仅需十几KB的RAM和约40KB的ROM。特性维度具体说明轻量级极致优化减少资源占用,实现“小而美”。模块化与可配置高度模块化,开发者可按需裁剪协议(如开源免费采用Modified BSD开源许可证,免费使用、修改和分发。轻量级无操作系统和带操作系统(RTOS)均可运行。
2026-04-29 17:52:46
422
原创 FreeRTOS任务通知
任务通知是 FreeRTOS 提供的一种轻量级、高速的任务间直接通信机制。每个任务都有一个内置的32 位通知值)和一个通知状态(pending或),允许一个任务直接向另一个任务发送事件或数据,而无需经过队列、信号量或事件组等中间对象。任务通知是 FreeRTOS 中最高效、最轻量的任务间通信方式,适用于单任务等待单个事件或简单数据的场景。它通过内置于任务控制块的通知值和状态,避免了创建额外内核对象,大幅提升了性能。但需要注意其“单接收者”和“无排队”的特性,在需要可靠传递多个消息时,仍需使用队列。
2026-04-29 15:05:39
344
原创 FreeRTOS 软件定时器(Software Timer)
软件定时器是由 FreeRTOS 内核提供的一种基于系统时钟节拍(Tick)的定时服务,允许用户设置一个函数(回调函数)在指定的未来时间点执行。不依赖特定硬件:使用任务和系统时基实现,可以在任何支持 FreeRTOS 的平台上运行。数量不限:只需配置足够的内存(和精度受系统节拍限制:超时周期必须是 tick 周期的整数倍(通常 1ms ~ 100ms)。回调函数在定时器服务任务上下文中执行,需要遵循特殊规则(不能阻塞、不能延时、不能调用会阻塞的 API)。周期性任务(如 LED 闪烁、传感器轮询)
2026-04-29 14:07:12
414
原创 FreeRTOS 事件组(Event Group)
事件组是 FreeRTOS 中处理多事件组合同步通过位掩码表示多个独立事件。支持“与”/“或”等待条件。可自动清除事件位,简化编程。适用于任务栅栏、多条件触发、状态机等场景。代码示例正确地使用了事件组的基本流程,但缺少 BIT_1 的触发源,导致任务永远阻塞。实际使用时请确保所有等待的位都有对应的设置者。
2026-04-29 13:07:14
440
原创 立创·天空星-STM32F407VGT6开发板-高配版
STM32F407VGT6主控,主频高达168Mhz,FLASH:1024KB而STM32F407VET6只有512K FLASH,另外上述高配版本配置了W25Q128高速晶振:8M。
2026-04-29 12:41:53
664
原创 FreeRTOS 互斥量(Mutex)
互斥量= 带所有权和优先级继承的二进制信号量,专用于保护共享资源的互斥访问。使用围绕临界区。优势:防止优先级反转,明确所有权,避免意外的释放。适用场景:多任务共享内存、外设、文件等。不适用:中断同步(应使用队列或二进制信号量)、递归获取(需使用递归版本)。理解这些知识后,你就可以安全地在任务间共享资源了。
2026-04-28 18:11:06
317
原创 FreeRTOS 源码中解读——xSemaphoreCreateBinary 宏的实现
1这段代码是 FreeRTOS 源码中宏的典型实现。它揭示了二进制信号量的本质——一个长度为 1、队列项长度为 0 的队列。下面详细拆解这个宏的每一部分。本质上调用创建了一个长度为 1、数据项大小为 0的特殊队列。这种设计统一了 FreeRTOS 的内核对象模型,降低了实现复杂度。理解这个宏有助于深入理解信号量与其他 IPC 机制(如队列、互斥量)的内在联系。
2026-04-28 17:51:38
238
原创 信号量(二进制/计数)
二进制信号量是 FreeRTOS 中最简单的同步工具,状态只有 0/1。Take减少计数,Give增加计数。适用于任务间同步(如中断通知任务)和简单的资源控制(注意优先级反转风险)。对于保护共享资源的互斥场景,应优先使用创建的互斥量。你给出的代码展示了典型的信号量获取与释放模式,只要理解其适用边界,就能灵活运用。
2026-04-28 17:13:48
357
原创 FreeRTOS队列通信
创建队列。发送任务周期性地调用xQueueSend入队数据(可能阻塞)。接收任务调用取出数据(可能阻塞)。队列作为 FreeRTOS 的核心组件,使用简单、功能强大,是嵌入式多任务编程中不可或缺的通信工具。掌握其原理和 API,可以构建出高内聚、低耦合的实时系统。
2026-04-28 16:19:27
404
原创 FreeRTOS任务管理
这段代码构建了一个多任务系统:两个任务以不同的周期(1 秒和 2 秒)在控制台打印信息,由 FreeRTOS 调度器按照优先级和延时时间自动切换。优先级高的任务(Task2)在每次同时就绪时总会优先执行,体现了抢占式调度。这段代码演示了 FreeRTOS 实时操作系统中两个独立任务的创建与调度运行过程。实现了非阻塞的周期延迟,节省 CPU 资源。
2026-04-28 14:40:25
179
原创 【Qt Maintenance Tool工具换源】已安装的QT如何添加镜像源
确保你已经安装了 Qt Maintenance Tool,打开Qt Maintenance Tool 并进入设置(左下角设置栏选项),弹出如下界面如果失败尝试更换镜像源,推荐清华镜像源、中科大镜像源这里为了确保QT使用用户更换的镜像源,我们把默认和临时选项取消全选最后测试更新速度,正常手段下一次更新可能长达一个半小时,换源后更新速度显著提高;
2026-04-23 08:42:25
202
原创 C 语言面向对象风格封装的经典技巧(STM32F1 标准库实现)
LED_Ops;// 工厂函数:返回封装了具体操作的 LED_Ops 结构体#endif技巧作用示例函数装进结构体定义统一接口,模拟类的成员函数LED_Ops包含onoff等函数指针结构体装进函数工厂模式,封装具体实现,隐藏硬件差异返回绑定好具体hw_xxx的结构体这种封装方式在嵌入式、驱动开发、库设计中非常常见(如 Linux 内核的、RT-Thread 的设备驱动框架)。它实现了接口与实现分离,更换底层硬件时只需修改一个源文件,真正做到了“更换硬件时仅需修改一处代码”。
2026-04-14 09:26:22
216
原创 GD32H759IMT6
GD32H759IMT6是兆易创新(GigaDevice)GD32H759系列微控制器的LQFP176封装型号,属于基于Arm Cortex-M7内核的超高性能32位MCU。
2026-04-12 13:25:26
610
原创 RS485 RE、DE
引脚名称全称功能描述典型电平逻辑RE(接收使能)控制接收器的使能与否。低电平有效:当 RE 为低电平时,接收器被启用,收发器可以从RS485总线(A/B线)上读取数据。高电平无效:当 RE 为高电平时,接收器被禁用,输出呈高阻态。低电平有效 (Active-LOW)DE(发送使能)控制发送驱动器(驱动端)的使能与否。高电平有效:当 DE 为高电平时,驱动器被启用,MCU可以将数据发送到RS485总线(A/B线)上。低电平无效:当 DE 为低电平时,驱动器被禁用,输出呈高阻态。
2026-04-10 15:39:45
458
原创 RaspberryPI Pico介绍
Raspberry Pi Pico是树莓派基金会推出的微控制器开发板,以其高性能、低成本和极佳的灵活性,成为嵌入式开发和电子项目的热门选择。它的核心优势在于双核Arm处理器和独特的可编程I/O(PIO)。PIO就像板载的“迷你协处理器”,能独立、精确地控制GPIO引脚,轻松实现VGA视频输出、LED点阵驱动等复杂接口,而无需占用CPU资源。Pico 1系列:基于RP2040芯片,是开创性的入门选择,有基础版和带Wi-Fi/蓝牙的Pico W版。Pico 2系列。
2026-04-09 08:56:20
519
原创 using namespace std;
为什么要避免全局的问题1:命名冲突// MyApp也有count函数count(5);// 歧义:调用std::count还是MyApp::count?问题2:可读性降低// 不好:不知道这些函数来自哪里// 来自std// 来自std// 更好:明确来源问题3:污染命名空间引入数千个名称,增加编译时间IDE自动补全变得混乱未来标准库扩展可能导致新的冲突是一个有争议但实用的工具优点。
2026-04-07 10:54:06
230
原创 C++构造函数、析构函数与拷贝控制深度解析
构造函数要点构造函数可以重载,提供多种初始化方式使用初始化列表初始化成员变量(更高效)委托构造函数可减少代码重复。
2026-04-07 10:48:38
273
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅