登录社区云,与社区用户共同成长
邀请您加入社区
¥57 的 ESP32 开发板刷 xiaozhi-esp32 固件,即可变成大模型语音助手:支持语音对话,并通过 MCP 协议控制灯、舵机等硬件,大模型走免费的 Qwen 实时接口。本文涵盖项目定位、硬件选型对比、刷固件与配网步骤、MCP 工具注册核心代码,以及 Flash 容量、离线唤醒、新版回归等常见踩坑。
AI自动生成Commit信息正成为开发者新选择,通过Codex等模型解析代码变更(diff)并生成规范描述,能显著提升提交效率、统一团队规范。实践方案涵盖命令行工具、IDE插件及CI/CD集成,支持自定义提示词优化输出。但全自动化存在准确性误判、敏感信息泄露等风险,需建立"AI生成+人工复核"的协同机制,对核心变更保持人工干预。未来AI或拓展至代码审查等更多场景,但当前阶段开发
Claude Code 和 Codex 在大方向上相似:都是项目级 Coding Agent,而不是专门为 MCU 设计的工具。Anthropic 官方强调 Claude Code 可以读取代码库、跨文件修改、执行命令和测试,并通过 CLAUDE.md、Skills、Hooks、Plugins、Subagents 和 MCP 把团队知识与外部系统接进来。这套机制对嵌入式开发非常有吸引力,因为固件团
本文介绍了通过STM32CubeMX配置串口DMA实现数据发送到Vofa+上位机显示波形的方法。主要内容包括:1)使用CubeMX配置USART1为只发模式并启用DMA和中断;2)编写相关代码实现数据更新和发送功能,通过memcpy打包浮点数据并附加帧尾;3)在Vofa+上位机中接收并显示5个通道的测试数据(1-5)。该方法实现了STM32与Vofa+的通信,为数据可视化提供了一种高效解决方案,适
摘要: 本文系统讲解了STM32 DMA的核心概念与工程应用,重点解析三大工作模式(普通/循环/内存拷贝)和四种传输方向(外设↔内存、内存↔内存)。DMA通过硬件自动搬运数据,大幅降低CPU负载,适用于高速、连续数据传输场景。普通模式适合一次性任务(如ADC采样),循环模式适合流式数据(如串口持续接收),内存模式(Mem2Mem)可替代memcpy。文章结合代码示例详解外设收发配置,并指出循环模式
本文介绍了基于CH32H417双核RISC-V MCU的AI自动化逻辑分析方案。该方案通过优化sigrok-cli工具链,结合sigrok-mcp-server中间件,实现与AI Agent的自然语言交互控制。硬件采用CH32H417单芯片逻辑分析仪方案,支持200MHz数字信号和20Msps模拟信号采样,配合开源生态实现低成本高性能的逻辑分析仪。
在工业控制场景下,需要的是对现场传感器的精确采集转换,进一步精确控制现场设备,考虑现场及转换过程中的各种误差因素,的电路基本一致,可以不用上拉电阻,但要加参考电压,参考电压的精度直接影响转换精度。信号到了控制板之后,怎么转换成单片机能够识别的数字量?后续干货不断,咱们一起在单片机的世界里,共同进步。以内的精密金属膜电阻,阻值误差直接影响采集精度。,不需要外部参考电压和放大电路,外围元件极少。采集这
相信不少嵌入式开发者都有过这样的经历:让AI助手帮忙写一段nRF Connect SDK的代码,结果生成的代码要么API已经废弃,要么DeviceTree节点配置完全错误,甚至直接“ hallucinate”(幻觉)出一些根本不存在的功能模块。这不是AI不够聪明,而是它缺少。
本文介绍了在C语言中通过函数指针结构体实现面向接口编程的方法。核心思想是定义一个包含函数指针的结构体(如Hal_CommcProtocFuncInfoHandle),描述通信协议的基本操作接口。具体协议(如UART、CAN)分别实现这些函数,并注册到结构体中。上层应用通过统一的接口指针调用,不直接依赖具体实现,从而实现解耦。文中还展示了带上下文指针的工程化实现,支持多实例,并通过封装层提高调用安全
摘要:南亚科技推出的NM4484NSPAXAE-3EE是一款高集成度MCP存储器,采用149-ball VFBGA封装(9.5×8mm),集成4Gb SLC NAND闪存和4Gb LPDDR4X DRAM。其核心特性包括3733Mbps高速接口、1.8V工作电压及-40°C至85°C工业级温宽,适用于嵌入式系统、通信设备等领域。SLC NAND提供高可靠性存储,LPDDR4X实现低功耗高速缓存,M
这是一个宏,它的关键内容是定义了一个;{ \} \{ \} \{ \} \{ \} \{}, \会和设备树里的带有属性的节点匹配上,触发。FBTFT框架是一个基于fbdev的辅助框架,专门为小尺寸SPI/并口LCD控制器(如ST7735ILI9341SSD1306等)设计,其与维度FBTFT层次底层框架基于 fbdev 的中间件复杂度需要实现完整的fb_ops只需配置结构体,框架代劳适用范围所有显
F28P55x 上 CLA Task 共享变量始终为 0、CLA 不运行的排查记录。重点解析 LS8 做程序 RAM 时 CPU 与 CLA 的地址双映射(差 0x10000),以及 memcpy 必须在 MEMCFG 配置前执行、需在 main 中重写初始化的两个关键坑。
本文介绍了硬件签名器项目的第二阶段开发,重点围绕三个基础模块:锂电池充电管理、电池电压监测和外部SPI Flash存储。通过MCP73831芯片实现USB-C充电输入和电池供电切换,采用电阻分压电路进行电池电压监测,并集成64Mbit SPI Flash用于存储非敏感数据。这些模块为后续MCU、安全芯片等核心功能提供了电源管理和本地存储基础。文章详细说明了各模块的设计原理、信号连接和实现要点,同时
摘要:本文详细介绍了如何从零搭建现代化嵌入式开发环境,重点推荐使用Cursor编辑器(兼容VSCode)。文章对比了Keil/IAR、VSCode+插件和Cursor的优缺点,指出Cursor集成了AI辅助编程且配置简便。环境搭建包括安装ARM GNU工具链、CMake/Ninja和OpenOCD,并配置系统环境变量。通过STM32CubeMX生成CMake工程后,在Cursor中安装C/C++、
本文详细介绍了如何利用MCP23017 I2C扩展芯片解决ESP32-S3开发板GPIO不足的问题,实现五路红外循迹小车的开发。文章从红外循迹模块的工作原理讲起,重点解析了可调电阻的作用原理与校准方法,提供了完整的硬件接线方案和代码实现。特别强调了逻辑编号与物理位置的对应关系,以及电平转换注意事项。通过详细的代码注释和状态判断逻辑,帮助开发者快速排查接线方向问题。最后给出了具体的校准步骤和常见问题
HC-05或BLE(低功耗蓝牙)模块(如NRF51822)常用于与手机或车载终端通信。STM32F103系列或STM32L4系列常用于此类系统,提供ADC模块、定时器和通信接口(如UART、SPI)支持传感器数据采集与处理。STM32通过单总线(DS18B20)或I2C(MCP9808)读取数据,温度补偿算法可修正气压传感器的热漂移误差。气压数据超出阈值(如低于1.8bar或高于3.0bar)时触
/d.........d+n//反向 *(--d)=*(--s)//s................s+n//正向 *d++ = *s++;//B:d.........d+n//正向 *d++ = *s++;
本文总结了自定义控制器通信的常见问题与解决方案。主要包括:1) 控制器接线方法,建议使用新图传VT03套件,注意TTL转RS232需接3.3V电源;2) 机器人接线时图传串口线直接连接控制板;3) 建议使用数组而非memcpy函数进行数据包发送;4) 接收数据时无需匹配串口号,推荐采用双缓冲区接收方式。最后强调每年通信协议可能变化,应以官方协议为准,可参考上海大学开源代码学习。遇到问题可在QQ群咨
本文详细介绍了在VSCode中使用EmbeddedIDE插件开发STM32项目的完整流程。主要内容包括:1)安装VSCode插件和环境配置;2)设置ARM工具链路径;3)创建STM32标准库工程;4)配置芯片支持包和构建器;5)通过STLink下载程序;6)补充说明ARMv5工具链的配置方法。文章以STM32F103C8T6为例,提供了从环境搭建到程序烧录的完整步骤指南,适合嵌入式开发初学者参考使
把核心的、不能动的东西(锅)和可以灵活变化的东西(菜单、菜)分开。它不是什么高大上的技术,就是一个能让人少写冗余代码、少出bug、后期好维护的小技巧——就像做菜,把锅固定好,菜单随便改,既能保证菜的品质(核心逻辑稳定),又能灵活加新菜(扩展功能)。实际开发中,不管是处理命令、响应事件,还是做设备控制、插件开发,都能用得上它。掌握它,不用记复杂的术语,只要记住“锅不动、菜单动”,就能写出更省事、更稳
摘要:本实验报告包含两个核心实验内容:一是基于MCP41010数字电位器的可变增益放大电路实现,通过单片机SPI接口控制增益交替变化(实测增益-1.89和-3.62),分析发现器件参数偏差(电位器实测10.8kΩ)是误差主因;二是LCD1602液晶显示驱动实验,实现了基础字符显示、自定义字符(加点数字)生成及滚动显示功能,详细阐述了CGRAM字模定义(5×8点阵)和DDRAM地址映射方法。实验涉及
MCP4822芯片基本STM32F103的驱动代码
注意:本程序中IIC搭载了6块MCP4661,通过A2、A1、A0来区别硬件地址(上电时地址自动锁存)。需区别正常命令读写和高压命令的读写,高压命令需硬件操作HVC的电平。
由于 Keil 工程中遗留的 HAL 库与模板生成的 HAL 库版本或配置可能存在差异(例如本次项目中遇到的 `HAL_MPU_ConfigRegion` 形参 `const` 冲突),**必须使用 CubeMX 生成的最新 HAL 库(包含 `Src` 和 `Inc`)完全覆盖** 目标工程中的对应文件,以确保接口严格一致。定义 `CC` (gcc)、`AS` (汇编器)、`LD` (链接器)
MCP41010是Microchip推出的单通道、256抽头数字电位器(10kΩ端到端电阻),通过SPI接口实现数字化电阻调节。将其集成到开关电源的反馈分压网络中,可实现对输出电压的无级、精准控制。
确定电源→ 单/双电源、电压范围 → 缩小候选确定信号类型→ 频率、幅度、阻抗 → 确定类别查对照表→ 找具体型号,对比 Vos/GBPW/SR/Iq场景推荐型号预算通用精密OPA2188¥3~5通用便宜MCP6002¥0.5~1高速 ADC 驱动THS3001¥8~15选型是第一步,选对了后面省很多事。你被哪颗运放坑过?留言区聊聊。下期预告:轨到轨运放的真实限制——输出摆幅≠电源轨。
本文深入探讨了嵌入式固件OTA升级中的5种高效压缩算法(LZ4、LZO、Huffman、DEFLATE、RLE),通过实测数据对比分析其压缩率、解压速度及内存占用,帮助开发者优化单片机固件传输效率。重点解析了LZ4在Cortex-M4内核上285MB/s的解压性能,以及如何构建完整的压缩OTA流水线,实现升级速度提升100%的实战方案。
该器件专为电池供电设备、便携式电子产品、工业小型控制系统设计,具备纳安级静态功耗、低压差、宽输入电压、内置多重保护等优势,可将高压输入稳定转换为3.3V固定电压,为MCU、传感器、ADC、存储器等弱电元器件提供纯净、稳定的供电电源。区别于开关电源,LDO无电磁干扰,输出纹波更低,适合为精密模拟电路、信号采集类元器件供电,但整体效率不适用于大压差、大功率供电场景。同时外围电路极简,仅需输入、输出两颗
本项目利用 零知派ESP32 开发板 控制 MCP4728 四通道 DAC 芯片,驱动红、黄、白、绿四个 LED灯珠模块,实现 6 种动态灯光效果(波浪、追逐、扫描、频闪、随机、心跳)。同时,通过一个 240×240 TFT 彩屏 实时显示当前模式、速度以及随灯光律动的动态边框。两个独立按钮分别切换模式和调节速度,所有设置支持断电记忆,重启后自动恢复上次状态。
本文采用GD32F103C8T6开发板的标准库GD32F10x_Firmware_Library_V2.6.0,利用标准库的硬件I2C通信,实现了mcp4728的DAC转换。
本文档介绍在 Windows 下通过 VS Code 配合 HiSpark Studio 扩展插件搭建开发环境的完整流程。该方案具备轻量化、易操作的特点,涵盖从软件安装到源码编译、镜像烧录及串口监控的全过程。