
嵌入式学习
文章平均质量分 74
平凡灵感码头
学习是永不返回的递归函数,每个堆栈帧都在重写认知的源代码。
探索轨迹:
嵌入式系统:在电路板与代码的边界搭建桥梁,从STM32寄存器操作到RTOS实时调度,破解硬件沉默的语言
数据分析:用Python解剖数据基因,在Pandas矩阵与Matplotlib光谱间解码商业遗传密码
人工智能:在PyTorch的梯度森林中穿行,用TensorFlow Lite在微控制器荒野拓荒边缘智能新边疆
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
什么嵌入式接入大模型:第二篇基于 STM32 & ESP32 的社会服务助手
结合STM32 和 ESP32,我们能实现从低功耗入门级应用(政策问答机)到高算力多模态应用(学习辅导机器人)的全链路解决方案。对社会工作者来说:ESP32 更适合便携、联网、低成本的服务终端;STM32 更适合工业、医疗、离线模式下的高稳定性应用。未来,随着轻量模型(如 TinyLlama、Phi-2)和国产 AI 芯片的发展,更多社会服务场景(养老、教育、社区治理)都可以真正落地。原创 2025-08-24 19:12:57 · 135 阅读 · 0 评论 -
什么是嵌入式接入大模型 第一篇概念与应用场景
在人工智能高速发展的今天,大模型(LLM, Large Language Model)已经逐渐从云端走向边缘,从科研实验室走进真实的行业应用。对社会工作者而言,这不仅仅是一个技术趋势,而是关乎 服务创新、社会治理、教育普惠与公共服务智能化 的新机遇。本文将深入探讨“嵌入式接入大模型”的概念、意义与应用场景。简单来说,就是将大语言模型(如 GPT、LLaMA、ChatGLM 等)的推理能力接入到 边缘设备/嵌入式系统 中,让智能硬件拥有自然语言理解和交互的能力。嵌入式系统:运行在硬件设备上的轻量级控制系统(如原创 2025-08-24 19:11:53 · 98 阅读 · 0 评论 -
MPU-6050 超实用入门
MPU-6050 是 InvenSense(后被 TDK 收购)公司推出的一款集成三轴加速度计和三轴陀螺仪的 MEMS 传感器,支持 I2C 通信,体积小、价格低、应用广泛。所需工具:Arduino UNO / ESP32 / STM32、杜邦线、USB线、Arduino IDE、MPU6050库(如 Jeff Rowberg 的 I2Cdevlib)通过加速度与陀螺仪的数据融合,可获得 Pitch(俯仰)、Roll(侧倾)、Yaw(偏航)等姿态角,进一步实现方向判断和姿态控制。原创 2025-08-09 17:32:56 · 345 阅读 · 0 评论 -
ESP32 外设控制基础:GPIO 应用详解与输入输出案例
GPIO(General Purpose Input Output)意为“通用输入输出端口”,是一种可以通过软件灵活配置为输入或输出的引脚。它在嵌入式开发中的典型应用包括:控制 LED 灯、继电器、蜂鸣器等输出设备检测按键、拨码开关等输入设备与传感器或其他模块进行高低电平交互还有模拟I2C SPI I2S等通讯协议本文介绍了 ESP32 GPIO 的使用基础,涵盖:GPIO 的功能与结构体配置常用控制函数控制 LED 的输出示例读取按键的输入检测示例使用中断方式监听按键的进阶示例。原创 2025-08-02 22:33:27 · 460 阅读 · 0 评论 -
Ubuntu 系统中配置 SSH 服务教程
SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中安全地进行远程登录、远程命令执行和文件传输。它是 Telnet、FTP 等传统协议的安全替代品。原创 2025-07-27 00:09:36 · 519 阅读 · 0 评论 -
ESP32:全网最火的 Wi‑Fi + 蓝牙双模微控制器
ESP32 是中国厂商 Espressif(乐鑫科技)推出的一系列集成了Wi‑Fi、蓝牙双模(Bluetooth 4.2/BLE)的 32 位微控制器芯片。它基于内核,具有强大的网络连接能力和外设扩展性,自 2016 年发布以来,在物联网、智能家居、可穿戴、工业控制等领域大受欢迎。ESP32 以低成本、强无线、全接口、成熟生态的组合拳,赢得了从大厂到 DIY 爱好者的广泛青睐。想做联网、智能、交互类硬件,ESP32 几乎是现成的最优解。原创 2025-07-18 12:52:53 · 340 阅读 · 0 评论 -
什么是 Bootloader?怎么把它移植到 STM32 上?
想象一下你的 MCU(比如 STM32)是一个小机器人,上电之后第一件事,它不会立马开始“干正事”(运行你的主程序),而是先去运行一个“开场引导程序”——这就是 Bootloader。也就是说,Bootloader 占前面 16KB 的空间(你可以设更多),主程序从后面接着跑。通俗讲,它就像是**“程序界的门房”**,开门、分发信件(固件)、开灯、安排进屋(跳转),全由它负责。这样你就得去你的 App 工程里修改启动地址,不然你主程序会被烧到 Bootloader 区,冲突了。打印,出问题好排查。原创 2025-07-12 23:27:15 · 1770 阅读 · 2 评论 -
为什么我输入对了密码,还是不能用 su 切换到 root?
问题是否可能解决方法Root 没有密码✅ 常见当前用户没权限用su✅ 常见加入wheel或sudo组输入了当前用户密码✅ 非常常见su要求的是目标用户密码(root)Root 被锁定✅ 有时解锁 root 或重设密码。原创 2025-05-24 20:54:01 · 820 阅读 · 0 评论 -
基于智能家居项目 ESP8266 WiFi 模块通信过程与使用方法详解
ESP8266 是由乐鑫科技(Espressif)推出的一款低功耗、高集成度的 WiFi SoC 芯片。它内置 TCP/IP 协议栈,支持 STA(Station)、AP(Access Point)和 STA+AP 混合模式,可以独立作为主控 MCU 或配合其它主控(如 STM32、Arduino)通过串口通信使用。ESP-01:最简模块,仅暴露少量 GPIO。ESP-12:GPIO 较多,适合开发板集成。NodeMCU:开发板封装,USB 转串口集成,方便调试。原创 2025-05-18 16:58:43 · 618 阅读 · 0 评论 -
红外遥控与NEC编码协议详解
红外遥控(Infrared Remote Control)是一种通过红外线(波长为700nm~1000nm)传输控制信号的无线通信方式。遥控器通过红外发射管(通常是一个LED)发送调制后的光信号,接收端通过红外接收器(例如VS1838B)接收并解调出控制信息。概念专业术语大白话解释红外遥控利用红外线传输控制指令用“看不见的光”打节奏传话PWM调制脉冲宽度调制,提高抗干扰性按特定频率快速闪灯NEC协议一种标准红外编码方式发32个“短拍/长拍”节奏地址+命令表示“控制谁+让它干啥”原创 2025-05-08 22:53:23 · 2427 阅读 · 1 评论 -
FreeRTOS任务管理与通信机制详解
队列是典型的FIFO(先进先出)数据结构,用于任务间或中断与任务之间的数据通信。原创 2025-05-01 16:32:13 · 711 阅读 · 0 评论 -
AT24C02连续写多字节数据,解决不能跨页写入,兼往AT24C02中存储结构体类型数据变量
接下来是我们通过算法实现可以跨页连续写,参数与上述函数一样。如何往AT24C02中存储结构体类型数据变量。首先下面是一个页写函数,不支持跨页写。我们定义一个u8 * p的数据指针。原创 2025-04-22 23:43:06 · 391 阅读 · 0 评论 -
AT24C02芯片简介:小巧强大的串行EEPROM存储器
AT24C02是一款2K位(即256字节)的串行EEPROM芯片,采用I²C(Inter-Integrated Circuit)总线进行通信,适合低功耗、小容量存储需求。原创 2025-04-22 23:42:12 · 1477 阅读 · 0 评论 -
FreeRTOS移植笔记:让操作系统在你的硬件上跑起来
(需手动创建/复制)位于工程目录,用于裁剪功能、设置时钟等参数移植步骤讲解1.首先我们在STM32裸机工程模板根目录下新建一个文件夹叫“FreeRTOS”,并在该文件夹下在创建两个文件夹“src”,"port",src文件夹用于保存FreeRTOS中的核心文件,也就是我们常说的“.c文件”,port文件夹中存放管理以及处理器相关代码,这些代码FreeRTOS官方提供给我们,直接使用。原创 2025-04-06 23:43:02 · 1248 阅读 · 0 评论 -
STM32F4 超声波测距控制舵机控制
首先我们将用到定时器TIM4,TIM7,TIM14 (由于IO口的复用),将TIM7做为定时中断(超声波多少秒进行检测),TIM4用与输入捕获用于捕获超声波反馈回来的脉冲,TIM14用于输出PWM控制舵机。超声波每100ms进行检测 (通过定时器7每一毫秒中断),如果检测的距离小于5cm ,我们就将舵机,进行比较寄存器加特定值,控制舵机转动。(定时器4中断服务函数)舵机初始化函数(直接调用定时器14的初始化,主函数没有调用是因为直接调用了tim14_ch1_pwm()初始化函数)原创 2025-04-04 11:20:42 · 390 阅读 · 0 评论 -
掌握FreeRTOS 操作系统(一)
FreeRTOS(Free Real-Time Operating System)是一款专为嵌入式系统设计的开源实时操作系统内核,遵循MIT许可证,由Real Time Engineers Ltd.维护。注重实施性,小型的系统(嵌入式中的系统),这个系统调度(任务调度)靠优先级完成,任务的执行没有时间界限的,任务结束可以挂起或者杀死,操作系统。在嵌入式中,使用的芯片主频不是很高,为了实现任务的快速切换,就需要实时操作系统。任务结构:任务控制块,任务函数,任务栈,任务优先级,任务状态。原创 2025-04-02 00:41:23 · 460 阅读 · 0 评论 -
嵌入式linux rk3399的启动过程
BootROM(内置启动代码)第一阶段引导加载器(第一阶段 Bootloader, 通常是 TPL/SPL 或 U-Boot SPL)第二阶段引导加载器(U-Boot)Linux 内核加载根文件系统挂载用户空间初始化下面我们逐步解析各个阶段的详细启动过程。原创 2025-03-27 11:24:39 · 992 阅读 · 0 评论 -
嵌入式linux rk3399平台介绍
推出的高性能 SoC(System on Chip),广泛应用于嵌入式 Linux 设备,如智能终端、工业控制、边缘计算、AI 视觉处理等领域。RK3399 并未集成独立 NPU(Neural Processing Unit),但可通过。RK3399 作为瑞芯微的高性能嵌入式处理器,凭借其。,成为嵌入式 Linux 领域的重要方案。相关内容,帮助开发者全面了解该平台的特点与应用。,是构建高性能嵌入式系统的理想选择!的良好兼容性,使其广泛应用于。,提供卓越的计算和图形性能。,官方 SDK 提供完整的。原创 2025-03-26 16:41:14 · 1414 阅读 · 0 评论 -
嵌入式Linux RK3399启动模式及分区技术详解
RK3399的启动模式与分区设计直接影响系统稳定性与性能。开发者需根据存储介质类型(eMMC、NVMe等)选择MBR或GPT分区方案,并结合安全需求优化Trust分区。通过FIT打包技术可显著提升固件管理效率,而环境变量分区的独立设计则增强了系统可维护性。实际部署中,需重点关注分区对齐、文件系统兼容性及启动参数的正确性,以确保嵌入式系统的高效运行。原创 2025-03-25 18:12:42 · 938 阅读 · 0 评论 -
蓝牙系统的核心组成解析
SDAP(Service Discovery Application Profile):服务发现。GAP(Generic Access Profile):设备可见性控制。持续广播UUID_0x1810(门锁服务)Active模式:全功能运行(耗电大户)发射端:把数字信号转为无线电波(说话)时分双工(TDD):交替发送/接收数据。Sniff模式:间歇性监听(类似打盹)接收端:将电波还原为数字信号(听声)功耗:约1mA(相当于LED指示灯)A[手机] --> B[客厅灯]功耗:0.01mA(相当于电子表)原创 2025-03-17 23:37:01 · 730 阅读 · 0 评论 -
STM32 了解OLED
OLED显示屏:性能优异的新型显示屏,具有功耗低,响应速度快,宽视角,轻薄柔韧等特点。首先,配置 I2C 外设,确保 STM32 可以正确地与 OLED 屏幕通信。使用 SSD1306 驱动库提供的函数,可以在 OLED 屏幕上显示文本。接下来,我们需要初始化 OLED 显示屏,使其能够正确显示。整合以上代码,在main() 函数中进行初始化并显示内容。常用通信协议:I2C/SPI。2. OLED 初始化。分辨率:128*64。1. I2C 初始化。原创 2024-12-09 22:26:22 · 577 阅读 · 0 评论 -
STM32移植文件系统(FatFs)
在嵌入式系统中,文件系统是非常重要的组成部分,尤其是对于需要存储大量数据的设备,如U盘、SD卡等。FatFs是一款开源的文件系统,它支持FAT12、FAT16、FAT32等格式,可以轻松地在嵌入式平台上实现文件存储和管理。STM32作为一种广泛应用的微控制器,其强大的处理能力和丰富的外设接口,使得它在嵌入式应用中被广泛采用。而将FatFs文件系统移植到STM32上,不仅能够使设备具备文件管理的功能,还能提高开发效率。原创 2024-12-04 11:12:52 · 1259 阅读 · 0 评论 -
搞懂 I2C 通信总线
I2C 是一种简洁且高效的串行通信协议,广泛应用于短距离低速数据传输的场景。通过简单的两根信号线,它能够实现多设备之间的数据交换,并且具有较低的硬件复杂性和扩展性。然而,它的传输速率和距离也存在一定的限制。在理解了 I2C 协议的工作原理和细节之后,大家可以根据具体应用选择是否采用 I2C 总线,或者考虑其他更适合的通信协议(如 SPI、UART)来满足需求。原创 2024-11-17 23:04:09 · 829 阅读 · 0 评论 -
嵌入式linuxshell程序设计实验
1创建目录和文件:在/tmp目录创建9个目录名为:dir1, dir2, …,目录名_file9;2 等待键盘输入一个数字,范围为1~9,重命名该级目录(假设输入 数字为“5”,则为“dir5”目录)下所有文件的扩展名为bak,并将 该级目录下所有文件名保存到一个文本文件file.txt,然后复制该级 目录到/home 目录。:输入一个文件名,如果文件名为空则提示输入的文件为空,否则判断 文件是否存在,不存在则显示提示信息,如果文件存在则判断文件是 普通文件还是目录,或是其他文件,给出相应的判断信息。原创 2024-10-06 23:55:24 · 438 阅读 · 0 评论 -
新建 STM32 Keil MDK 5工程
2. startup_stm32f10x_hd.s 该文件是启动文件,根据stm32单片机的配置,选hd 表示该单片机中的falsk是512K, 在路径en.stswstm32054\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm。在STM32中,中断是一种重要的事件处理机制,可以在系统发生特定事件时中断当前程序的执行,执行相应的中断服务程序。该三个文件放到User文件加下,原创 2024-10-01 00:46:22 · 1204 阅读 · 0 评论