登录社区云,与社区用户共同成长
邀请您加入社区
PX4开源飞控系统由飞控软件和QGroundControl地面站组成,支持多种无人机类型。其核心组件包括Bootloader和Uploader:Bootloader是设备端底层软件,负责硬件初始化、固件验证和更新;Uploader是外部工具,用于传输固件并协调升级流程。二者通过通信协议协同工作,共同实现PX4系统的启动和固件更新功能。开发中需重点关注Bootloader的bl.c等源码和Uploa
沁恒RISC-V MCU 基于CH32V307的智能家居中控系统
在STM32N6570-DK开发板的开机视频中,有一个流畅炫酷的滚轮式菜单选择界面,通过选择不同的图标,可以实现界面的切换。这里将这个功能设计成了一个容器,本LAT的附件提供了一个菜单选择界面的容器MenuContainer.tpkg和所需的字体、动画的图片,可以很方便的导入其他工程,并根据自己需要替换图片和文字,实现流畅炫酷菜单选择界面的快速开发。
全球领先的边缘AI和智能音频专家XMOS宣布:公司已推出端侧多模态AI传感器融合接口(AI Sensor Hub),该接口利用XMOS的xcore软件定义系统级芯片(SoC)上灵活的接口和高效的算力,在边缘对来自不同接口的包括音频、图像、视觉和其他多种传感器输出的多模态信号进行融合以及AI计算,既可支持本地设备独立地对各种传感器信号进行AI推理计算,也可作为智算系统的输入前端并执行相应的功能。该方
摘要:MCU(微控制器)和SOC(片上系统)是汽车控制器中的两种主芯片。传统汽车以MCU为主,但随着智能汽车功能增多,逐渐采用SOC+MCU的域控制器架构。MCU集成CPU、存储器和简单外设,执行效率高、实时性好,适合专用控制任务;SOC则集成多核处理器、GPU等模块,支持GB级内存和复杂操作系统(如Linux),算力强但功耗高。MCU启动快(毫秒级),SOC启动慢(秒级),因此在智能汽车中常采用
本文介绍了SU-03T语音模组的SDK配置与二次开发流程。主要内容包括:1)通过智能公元平台配置SDK,包括基础功能设置、唤醒词/命令词定义等;2)搭建Linux交叉编译环境,下载并解压SDK包;3)关闭Demo模式进行二次开发,在预留的代码入口处实现自定义功能逻辑。该指南提供了从SDK获取到功能开发的完整路径,帮助开发者基于官方SDK快速实现个性化语音交互功能。
主要是连线与修改设备树,有需要的可以点赞,有空会更新。
本文设计了一款基于STM32F103芯片的智能窗帘系统,支持手动、语音、蓝牙远程、定时及环境监测等多种控制模式。系统硬件由STM32主控芯片、语音模块、蓝牙通信模块、DHT11温湿度传感器、屏幕显示模块、舵机及按键等组成,软件设计则包括语音交互、定时设置、蓝牙通信、屏幕显示及环境监测等功能。该系统能够根据用户指令或环境数据自动调节窗帘开闭状态,并通过语音播报或手机APP反馈操作信息。测试结果表明,
Dummy-Robot 电机驱动模块主要是用于二相步进电机,电机驱动模块可以进行高效的FOC控制,也可以进行简单的换向控制,“简单的换向控制”和FOC控制最显著的区别 应该就是对电机相电流的控制,“简单的换向控制”的电机相电流大小一般是保持不变的,FOC控制的电机相电流的大小根据负载需求实时变化,FOC控制后面再单独分析吧。FOC 控制算法是整个电机驱动的核心技术,FOC控制原理:让旋转磁场(定子
本文档详细介绍了RTL8721DAF无线模块的AT命令集,涵盖SPI和SDIO接口使用方法。命令集分为通用、Wi-Fi、网络、Socket、MQTT、HTTP、WebSocket、蓝牙、文件系统和OTA等10大类,提供完整的无线连接与数据传输控制功能。文档说明了标准AT命令格式和响应机制,包括成功返回"OK"和失败返回"ERROR"及错误码的规范,为开发者快
蜂鸟e203协同仿真
用于USB转JTAG芯片CH347下载FPGA程序的Vivado脚本插件
Keil、CCS等开发软件编译速度慢的优化方法 禁用微软服务:关闭影响编译的进程(如MSPCManager Service)可显著提速; 调整并行编译核心数:Keil/CCS中设置为CPU核心数的80%以内; 关闭系统自动更新:联想用户可用官方工具一键禁用; 卸载微软电脑管家:该后台程序可能占用资源。通过任务管理器或控制面板操作即可。
本文介绍了一种基于STM32单片机的人脸识别智能垃圾桶模型。该系统由STM32F103C8T6主控芯片、ASR-PRO语音交互模块、SG90舵机和人脸识别模块组成。语音模块用于验证口令,只有口令正确才能录入人脸;识别成功后舵机带动垃圾桶盖打开。控制流程包括人脸识别、语音交互和舵机驱动,通过串口指令实现人脸录入与识别。系统采用STM32CubeMX配置GPIO、PWM和串口参数,Keil5编写控制程
你好!此文章只是简单测试了PDM麦克风,没有过多深度测试。时间有限!!!为什么讲PDM麦克风,主要还是记录前段时间制作聊天机器人声音采集部分电路时随便测试了一下。PDM麦克风在近距离采集识别还是够用,主要还是便宜!如果要高质量采集,不建议PDM麦克风。个人观点)。希望文章对你有一点点帮助......提示:以下是本篇文章正文内容,下面案例只供参考PDM麦克风在近距离语音采集(如语音指令、简单降噪)中
本文是一个STM32智能语音垃圾桶套件模型,采用STM32F103C8T6单片机+舵机+语音交互模块+红外模块,实现语音口令控制垃圾桶自动开启,并实现满溢检测,垃圾桶满了之后会输出语音告警。
文章摘要:解决程序加载到板卡时的报错问题。主要原因是Flash容量配置错误,需重新设置与实际板卡匹配的Flash选项(博主板卡为128kbits)。操作步骤:进入Debug的Settings,删除原有配置后,添加128k容量的Flash选项即可完成正确配置,实现成功下载。
本项目是在**PC**上搭建交叉编译环境进行编译最后将程序部署在板子端,功能为:应用层使用ffmpeg+rkmpp插件对h.264格式的mp4进行硬解码,然后将得到的AV_PIX_FMT_DRM_PRIME格式帧使用DRM框架进行渲染显示。
当STM32丝滑运行的代码在8051上疯狂报错——这不是玄学,是C语言的可移植性–当代嵌入式开发最大的"海市蜃楼"!
摘要:本文深入解析嵌入式开发中指针赋值与数据赋值的区别与应用。数据赋值直接复制变量内容,而指针赋值传递变量地址,实现间接访问。在嵌入式系统中,指针能高效管理寄存器、内存等硬件资源,支持动态数据结构和算法。文章通过LED控制、数组操作等实例,对比两种方式的优缺点,指出指针赋值可节省内存、提升性能但易引发安全风险。同时提供实战技巧和避坑指南,强调合理使用指针对嵌入式系统稳定性、安全性和性能优化的重要性
随着农业生产智能化的广泛应用,农业设施智能化成为目前温室大棚等场景中的一个重要发展方向,温室大棚环境调控方式实现自动化控制监测的研究具有重要意义。其中,温室大棚中作物生长所需要的环境因素的无线检测与调控作为本文的研究方向,主要研究温室大棚室环境监测控制设备的设计与实现。该设计以MCU作为控制中心,开发一款具有实时温湿度检测、二氧化碳浓度检测、光强检测等功能,同时该设备以ZigBee作为通信网络,实
UART(Universal Asynchronous Receiver/Transmitter)是嵌入式系统中最通用的串行通信接口。STM32 的 USART 外设功能非常强大,不仅支持标准的异步串口通信,还支持同步模式、单线半双工、LIN 总线、甚至 SmartCard 协议。
嵌入式开发中的关键策略:读改写。
define 常量名 常量数据// 定义数组(未初始化)// 包含5个int元素的数组// 定义并初始化// 完全初始化// 自动推断长度为3// 全部初始化为0返回类型 函数名(参数列表) {// 函数体return 返回值;// 非void类型必须返回指针是一个存储内存地址的变量。它指向内存中的某个位置,通过这个地址可以访问或修改该位置的数据。int a = 10;// 在酒店开一个房间(房间
本文介绍了动作表(查表法)这一编程思想,通过预定义结构体数组替代传统if-else/switch判断,实现数据驱动编程。动作表具有可维护性高(修改只需调整表数据)、扩展性强(新增功能仅需添加表项)、执行效率优(时间复杂度可达O(1))等优势。文章通过命令解析器和状态机两个嵌入式开发实例,展示了动作表的具体实现方式:定义键值-处理函数结构体、初始化查询表、通过遍历匹配执行对应操作。这种"以
嵌入式开发中,交叉编译是关键环节,它能在PC上生成MCU可执行文件。越来越多开发者采用VSCode+Keil组合方案:VSCode负责代码编辑和管理,Keil提供工具链和调试支持。这种组合优势明显:提升编辑体验、丰富插件生态、便于团队协作、支持自动化构建和CI/CD集成,同时保持跨平台兼容性。通过合理配置项目结构和脚本,既能享受VSCode的高效编辑,又能利用Keil的专业编译调试功能,大幅提升开
在嵌入式开发中,尤其是在资源受限的 MCU(微控制单元)项目里,很多初学者会有一个疑问:“为什么大家都在避谈 malloc(),甚至在代码规范中直接禁止使用动态内存分配?”今天我们就来深入探讨这个问题。虽然在一些高级处理器或 Linux 系统下使用 malloc() 是常态,但在资源受限、要求高稳定性的 MCU 中,我们更倾向于使用静态分配、内存池或固定策略来管理内存。
本讲介绍了STM32开发中的关键模块与技术:1) UART模块配置及弱定义回调机制;2) DMA工作原理及其传输模式;3) 环形缓冲区的实现与应用;4) ADC模块配置及DMA数据采集方法;5) 队列数据结构思想;6) 格式化字符串处理函数sprintf/sscanf。重点阐述了通过DMA实现外设与内存间高效数据传输的技术方案,以及中断处理与缓冲机制在实时系统中的重要作用。这些内容为嵌入式系统开发
本文探讨了嵌入式系统中数据接收的优化方案。首先分析了轮询、字节中断和DMA直接处理三种传统方式的缺点:效率低、中断开销大、处理不灵活等。然后提出"DMA半满全满+空闲中断+环形队列"的高效方案,通过环形队列实现数据缓冲,结合半满/全满中断动态处理数据,并利用空闲中断维护队列状态。详细介绍了双缓冲机制的工作流程,该方案能有效平衡传输效率与实时性,实现无缝数据流采集,适用于不同大小
SDNAND和eMMC作为嵌入式设备主流存储方案,各有优势定位。SDNAND采用LGA-8封装,体积小60%,支持通用接口,适合中小容量(128MB-32GB)、空间受限场景;eMMC大容量(8GB-128GB)、高速(100-200MB/s),专为移动设备优化。实测显示,在穿戴设备(尺寸/功耗)、工业传感器(寿命/可靠性)、智能家居(成本/开发)三类场景中,SDNAND可有效替代eMMC。选型三
作者由于项目需要使用lwip,由于没学过计网所以整理了一下icmp协议相关内容,以下的内容都出自书籍<<嵌入式网络那些事,lwip协议深度解析与实战演练>>
printf 和 sprintf 是 C 语言中常用的输出函数,广泛应用于各种嵌入式、桌面应用程序和调试过程中。这些函数可以将格式化的数据输出到标准输出(如控制台)或存储到字符串中。在系统开发中,了解它们的底层实现不仅能够帮助优化性能,还能提高代码的可移植性和灵活性。
在资源有限的嵌入式系统上开发现代风格的UI应用,通常需要高算力和丰富的资源支持,但高成本的MCU和低端MCU的资源限制使得这一目标难以实现。兆讯公司推出的MH22D3芯片,基于Cortex-M3内核,主频高达216MHz,配备64KB SRAM和512KB Flash,为开发复杂UI应用提供了良好的硬件基础。结合ARM2D(一种高效的绘图和部分帧缓冲支持工具),可以在低成本MCU上实现流畅的UI效
本文对比了嵌入式开发中常用的五种通信协议:CAN、SPI、IIC、UART和USART。从核心定义、物理层引脚、通信方式、传输速率、拓扑结构等方面进行了详细对比分析,并提供了STM32平台下的初始化代码示例。CAN协议适合工业强干扰环境,SPI支持高速全双工通信,IIC采用两线式总线结构,UART/USART则用于通用异步/同步串行通信。每种协议在硬件配置、抗干扰性、传输距离和应用场景上各有特点,
在PID控制实验中,发现实际转速无法跟上目标转速的阶段性增加。经过分析,发现两个关键问题:首先,app_pwm.c文件中未引入math.h,导致fabsf()函数未正确计算浮点数的绝对值,进而影响ccr的计算,使得PID输出异常。其次,stm32f10x_it.c中SysTick_Handler未检查COUNTFLAG,导致ulTicks可能错误递增,影响时间间隔dt的准确性,进而影响PID控制器
摘要:AHB总线作为嵌入式系统的高速主干通道,连接着FMC(灵活存储控制器)、SDIO(安全数字接口)、CRC(循环冗余校验)和RCU(复位时钟单元)等关键外设。这些模块凭借高速数据处理能力,在机器人控制、工业自动化和医疗设备等场景发挥重要作用。FMC实现大容量存储访问,SDIO支持移动存储操作,CRC提供数据校验,RCU管理时钟和复位。将核心外设挂载在AHB总线可提升系统性能,但也会增加设计复杂
这个是视频。第一篇CSDN文章在这里75STM32智能小车V3-STM32入门教程-openmv与STM32循迹小车-stm32f103c8t6-电赛 嵌入式学习 PID控制算法 编码器电机跟随。
工具安装与环境配置指南 本文详细介绍了搭建嵌入式开发环境所需的工具安装和配置步骤。主要内容包括:1)VirtualBox虚拟机安装及Ubuntu22系统配置;2)MobaXterm远程连接工具和ADB调试工具的安装;3)交叉编译环境的搭建,包括arm-gcc编译链安装和官方SDK环境部署;4)镜像烧录流程和使用ADB上传程序的方法;5)VSCode远程开发环境配置。文中提供了详细的命令操作和截图指
摘要:本文总结了DDR软件驱动开发中的5大常见陷阱:1)初始化顺序错误导致训练失败;2)寄存器访问未抽象导致复用性差;3)忽略时序边界引发随机异常;4)训练日志格式混乱影响排查;5)跨团队沟通不畅延误问题定位。作者针对每个问题提供了典型现象、原因分析和实用建议,如建立初始化流程图、抽象寄存器接口、结构化日志记录等。这些经验有助于提升DDR开发的稳定性和调试效率,适合嵌入式工程师参考。
本文记录了在编写SSD1306驱动时发现的一个奇特BUG:在I2C通信中加入软件延时后,数据出现特定模式的错误(感叹号形状)。经过排查发现,错误数据与从机地址和写命令的二进制数据吻合。通过一系列实验证明,问题根源在于频繁开关SysTick系统时钟导致MCU“心跳震颤”,这种干扰会随着延时循环次数增加而加剧。最终解决方案是保持SysTick持续运行,避免中途开关。这一案例深刻揭示了系统时钟对嵌入式系
mcu
——mcu
联系我们(工作时间:8:30-22:00)
400-660-0108 kefu@csdn.net