登录社区云,与社区用户共同成长
邀请您加入社区
系统启动后通过 I2C 总线探测多个候选地址(0x0D、0x1E、0x30、0x3C),通过读取 ID 寄存器区分 QMC5883L(0x0D 寄存器值为 0xFF)和 HMC5883L(0x00 寄存器值为 0x48)。系统采用 8MHz 外部晶振(HSE),通过 PLL 9 倍频得到 72MHz 系统时钟。QMC5883L 是 3 轴 AMR(各向异性磁阻)磁传感器,支持 I2C 接口(7位地
本文为芯片手册阅读指南,针对不同需求提供实用建议:1)选型阶段重点查看概述、特性、外设资源等核心参数;2)开发配置时需关注引脚定义、典型电路、寄存器描述;3)硬件设计需严格遵循电气特性和封装尺寸。推荐使用"半导小芯"查询工具和"沉浸式翻译"插件辅助阅读。文章通过STM32等实例,详细说明如何提取关键信息,包括引脚复用、电源设计、时序约束等实用技巧,帮助开发者高效利用手册解决选型、编程和调试问题。
本文介绍了I2C通信的基本流程和数据帧格式。I2C通信由主机发起,通过起始位开始通信,随后发送7位从机地址和1位读写标志进行寻址。数据传输阶段以字节为单位,每传输一个字节后接收方需应答ACK信号。文章详细说明了起始位、停止位的产生方式(SCL高电平时SDA的边沿变化)以及寻址和数据传输的具体时序。最后通过两个具体示例(写操作0x5a和0x33、读操作0x64)展示了完整的通信波形,包括地址发送、数
先看flash的连接方式:从这张图可以看出,DMA1/2是可以通过AHB总线访问flash中的数据。,而Flash存储器。当DMA通过32-bit AHB总线读取Flash时,Flash控制器需要将内部128-bit的读取结果进行数据裁剪。同时这张图也可以看出来,
底层核心:两套完全隔离的 USB 通信协议ST‑Link:ST 私有封闭协议(仿ST-Link也可以被cubeProgramer识别)CubeProgrammer 软件底层只写了ST-Link 私有指令解析引擎STMicroelectronicsDAP-Link 识别ST-Link v2cubeProgram例子。
本文介绍了一种基于Renode硬件仿真器的无硬件STM32开发调试方案。通过配置VSCode与Cortex-Debug扩展,开发者可在模拟环境中实现完整调试流程,包括断点设置、单步执行和变量查看。方案采用STM32F407芯片示例,详细说明了从编写Renode启动脚本(.resc)到配置VSCode调试文件的完整过程,重点解决了传统硬件调试中设备依赖、连接不稳定等问题。该方案显著提升早期开发效率,
RC振荡器是 纯硬件自激振荡系统,,,内部必须使用施密特触发器,,因为电容电压接近阈值的时候,上下抖动,,输出会疯狂翻转,,,依赖电阻电容充放电,温度一边,频率就漂,,电压变化也会影响。放大器:amplifier : 让信号放大的电路,,,,晶振HSE,PLL内部,ADC前端,,都用到了放大器。,,中间区域保持原状态,,只有比较超过阈值,,电平才会变化,,,用来过滤抖动,,但是有。,,,通过利用电
内容主要是根据B站江科大的STM32 视频,整理的一份笔记GPIO是通用的输入输出端口,是可编程控制的通用引脚,可通过软件配置为输入/输出引脚1.GPIO_Mode_AIN 是模拟输入。2. GPIO_Mode_IN_FLOATING 是浮空输入。3. GPIO_Mode_IPD 是下拉输入。4. GPIO_Mode_IPU 是上拉输入。5.GPIO_Mode_Out_OD 是开漏输出。6. GP
一个核跑Linux做界面,一个核跑RTOS做实时控制——异构多核混合部署,正在成为物联网网关的“脊梁”。本文基于ZYNQ和STM32MP157真实项目:✅ 为什么需要混合部署?Linux生态强但实时性差,RTOS实时性好但生态弱✅ OpenAMP框架:RPMsg+VirtIO+Remoteproc,异构通信的“桥梁”✅ 实战部署:在ZYNQ上加载FreeRTOS固件、STM32MP157上跑RT-
bxCAN是基本扩展CAN(Basic Extended CAN)的缩写,它支持CAN协议2.0A和2.0B。它的设计目标是,以最小的CPU负荷来高效处理大量收到的报文。它也支持报文发送的优先级要求(优先级特性可软件配置)。对于安全紧要的应用,bxCAN提供所有支持时间触发通信模式所需的硬件功能。
【摘要】STM32的GPIO输出速度选择需权衡利弊:50MHz模式虽快但易引发振铃和EMI,2MHz模式省电但可能导致高频信号畸变。关键要根据实际需求选择——信号频率高(如4MHz)需高速模式避免波形失真,低频信号(如LED控制)用低速模式更节能安全。建议从10MHz起步测试,用示波器观察波形,通过调整速度档位或串联阻尼电阻优化性能。记住:GPIO速度本质是控制边沿斜率,盲目追求高速可能适得其反。
先看这张图这是一个总线矩阵,它的功能是实现并发访问和操作。意思就是DMA1可以通过DMA_MEM1访问SRAM1,同时DMA2也可以通过DMA_MEM2访问SRAM1。矩阵上的小圆点,表示可以访问,DMA1不同通过DMA_MEM1访问AHB1总线。注意,CCM data RAM是挂载在ARM Cortex-M4,只能通过CPU进行访问。
本项目基于STM32F103C8T6单片机开发智能家庭鱼缸控制系统,通过多种传感器(温度、水位、电导率、光照)实时监测鱼缸环境参数,并实现自动控制与远程监控功能。系统包含OLED显示、手动/自动模式切换、阈值设置、蜂鸣器报警及继电器控制等功能模块。当环境参数异常时,系统可自动调节加热、风扇、水泵等设备,同时支持通过WiFi模块(ESP8266-01S)连接手机APP进行远程监控和参数调整。项目提供
本项目基于STM32F103C8T6单片机设计了一款智能饮水机水质检测系统,通过多种传感器(温度、TDS电导率、浊度、PH值、水位)实时监测水质参数,并具备阈值报警功能。系统包含OLED显示模块、WiFi通信模块(ESP8266)和手机APP远程监控功能,可实时显示水质数据、设置报警阈值,并在参数异常时触发声光报警。硬件设计包括原理图和PCB图,软件采用模块化编程实现数据采集、处理与远程通信。项目
1、SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线,共四根通信线,分别为SCK(Serial Clock,提供时钟信号)、MOSI(Master Output Slave Input,主机向从机发送数据的线路)、MISO(Master Input Slave Output,主机接收从机数据的线路)、SS(Slave Select,从机
本系统以STM32F103C8T6单片机为主控核心,搭建智能粮仓监测控制系统。系统可实时采集粮仓温湿度环境数据,支持粮仓灯光、电机设备的控制功能;依托ESP01SWiFi模块将环境数据上传至物联网云平台与APP,实现设备的云端与移动端双端远程控制。同时搭载ESP32-CAM模块完成粮仓现场虫害识别,并配套设计虫害诱捕结构,可实现储粮害虫的诱捕治理。
1和2两部分加起来是输入捕获的电路,2和3两部分加起来是输出比较的电路。由图中可以看出有4个输入捕获和输出比较通道,输入捕获和输出比较共用4个CCR寄存器,4个通道的引脚(CH1、CH2、CH3、CH4)输入捕获和输出比较也是共用的,输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数。每个高级定时器和
STM32 CubeMX 代码编写规范摘要
定时器波形步骤第一步:CNT(计数器)与CCR(捕获比较寄存器)进行比较,如果CNT大于or等于CCR,就会给输出模式控制器传一个信号;第二步:输出模式控制器就会改变它输出OC1REF的高低电平,REF信号实际上就是信号的高低电平(REF:reference,参考信号);第三步:CC1P:极性选择寄存器,给0,信号就会走对应的0那一路,信号不变;给1,信号会经过一个非门,极性翻转;第四步:信号从O
文章摘要:作者在STM32/Cortex-M4开发蓝牙透传接收时发现,多个AI声称微信小程序蓝牙数据包长度限制为20字节(iPhone)或稍长(Android)。但实际测试(华为、iPhone)证明该限制已不存在,单次可发送240字节,连续发送速率可达12KB/s(20ms间隔)。最终发现是合作方小程序代码自行限制了包长。AI的误导源于其训练数据未更新,未能反映微信蓝牙协议的最新变化。作者通过实测
本项目基于STM32F103C8T6微控制器设计了一个双舵机控制系统。通过按键触发,两个SG90标准舵机依次执行0°→180°→0°往返动作,并在OLED屏实时显示累计次数。
位带操作(Bit-Banding)是Cortex-M3/M4/M7内核专属的硬件特性,全系搭载该内核的STM32单片机均支持,而Cortex-M0/M0+内核无此功能。
本文介绍了串口通信的局限性(仅支持一对一连接)和I2C总线的优势。I2C通过SCL时钟线和SDA数据线实现多设备连接,最多可支持100多个设备。文中详细解析了I2C的工作原理:采用开漏输出和上拉电阻实现逻辑线与功能,主机通过控制SCL产生时钟信号,通过交替写0/1在SDA线上发送数据;从机发送数据时,主机SDA置1,目标从机控制SDA线电平。相比串口,I2C具有连接设备多、布线简单的特点。
摘要:本文介绍了USART串口通信的引脚组成、工作模式及STM32配置方法。USART包含发送(Tx)、接收(Rx)、硬件流控(CTS/RTS)和同步时钟(CK)引脚,其中硬件流控可提升高速数据传输的稳定性。文章详细说明了全双工、半双工、同步模式和硬件流控的工作特点,并给出了STM32串口初始化的代码示例,包括GPIO配置、USART参数设置和数据收发流程。特别强调了接收引脚推荐使用上拉模式以避免
CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO*1 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个 LAN,进行大量
完成 Linux 基础学习后,在磁盘挂载、移动存储读写实操中能明显发现 FAT32 与 NTFS 两种文件系统的适配差异:同一张 SD 卡,NTFS 格式需要额外驱动才能正常读写,FAT32 则可被系统直接识别。结合后续 STM32 嵌入式存储开发的学习规划,本文梳理两类文件系统底层原理、核心特性,结合 Linux 系统与单片机硬件两种使用场景做对比分析,记录实操过程中出现的故障与对应解决思路,为
【项目摘要】本项目基于STM32F103C8T6单片机设计了一款智能学习书桌系统,集成环境监测、坐姿矫正与远程控制功能。硬件包含温湿度传感器(DHT11)、光敏模块、超声波测距(HC-SR04)、人体红外感应(HC-SR501)、OLED屏幕及WiFi模块(ESP8266-01S)等,实现以下核心功能: 环境监测:实时采集温湿度、光照强度,超阈值时声光报警; 坐姿检测:超声波传感器监测坐姿异常并提
本项目基于STM32F103C8T6单片机设计了一套智能家居控制系统,通过多种传感器(DHT11温湿度、MQ系列气体、BMP280气压、光敏等)实时采集环境数据,并通过OLED屏幕显示。系统具备自动照明、烟雾/一氧化碳/空气质量超标报警功能,支持APP远程监控(通过ESP8266 WiFi模块)、阈值设置及设备控制(LED灯、步进电机模拟窗户开关)。硬件设计包含原理图、PCB图,软件采用模块化编程
本项目基于STM32F103C8T6单片机设计了一套智能环境监测系统,集成了温湿度传感器(DHT11)、烟雾传感器(MQ-2)、噪音传感器、OLED显示屏、蜂鸣器报警和WiFi模块(ESP8266-01S)。系统可实时监测环境参数,通过OLED显示温湿度、烟雾浓度和噪音值,支持阈值设置和声光报警功能,超标时触发蜂鸣器警示。同时通过WiFi连接手机APP实现远程监控和阈值调节,适用于农业大棚、室内环
本文基于江协科技的STM32教程,详细介绍了I2C通信协议及其在MPU6050传感器中的应用。主要内容包括:1) I2C协议概述与硬件电路设计,强调开漏输出模式与上拉电阻的必要性;2) I2C时序详解,包括起始/终止条件、字节收发和应答机制;3) MPU6050传感器的功能特点、寄存器配置及数据读取方法;4) 软件I2C和硬件I2C两种实现方式的对比,提供完整的STM32驱动代码。文章建议学习前具
本文档描述了一个基于STM32的RS485通信实现,主要包括以下内容: 硬件初始化配置 通过USART2实现RS485通信,配置GPIO引脚(PA2为TX,PA3为RX,PG3为方向控制) 设置串口参数:8位数据位、1位停止位、无校验位 启用接收中断并配置NVIC中断优先级 定时器功能 TIM2定时器配置为1ms中断,用于通信超时监控和LED指示灯控制 通信协议实现 支持Modbus RTU协议(
5.2工程代码生成设置、1选中间需要什么库文件自己选,编译比较快。8时钟配置选3PLL时钟锁向环,外部时钟8m,红色报错选2分频,选择css自动检查外部晶振有没有坏。9GPIO配置out,1默认高,推完输出,上垃,速度,低速,pwm用高速。1安装java安装cubemx,选择help,管理芯片包倒数2个,下载或者下左从本地安装,7.系统选择,第2 串口烧录,不需要系统唤醒,rtos系统用time1
该代码实现了基于STM32F4的OV5640摄像头模块驱动,支持RGB565和JPEG两种图像输出模式。主要功能包括:1) 通过DCMI接口和DMA传输采集图像数据;2) 提供对比度调节、自动对焦、图像特效(7种)和分辨率切换(12种尺寸)功能;3) RGB565模式可直接在LCD显示,JPEG模式可通过串口发送图像数据;4) 包含帧缓冲管理机制,使用双缓冲技术实现连续采集。系统通过按键控制模式切
/读取指定 GPIO 端口的某个特定引脚当前的输入电平(高或低),返回一个 uint8_t 类型的值。(1)先将SDA拉高,再将SCL拉高,为了应对特殊情况下的SCL初始位低电平,SDA初始为低电平,这时如果先拉高SCL,再拉高SDA,此时的时序逻辑为终止条件。会让本来是下一次的的开始变为终止,在指定地址读的时序中,出现错误。所以这里的只需将SDA置位0。
本文提出了一种基于STM32U3B5微控制器和LSTM-CNN混合模型的人体活动识别(HAR)系统实现方案。该系统采用边缘计算架构,通过并行双分支神经网络模型(CNN提取局部特征,LSTM建模时序依赖)实现高精度活动分类。硬件平台选用STM32U3B5芯片,利用其内置FMAC加速器和CORDIC协处理器优化神经网络推理,在超低功耗(<5mW)下完成实时活动识别。系统包含完整的实现链路:从IMU传感
做 STM32多任务项目时,最忌讳使用while(xxx)delay()这种阻塞式延时。一旦调用阻塞延时,整个系统会卡死,无法同时处理按键、串口、电机闭环、视觉数据等并行任务。本文基于整套代码分为Timer.h头文件 +Timer.c源文件,可直接复制使用,更换 TIM 定时器只需修改少量宏。配置 1ms 中断,每次中断全局自增Timer_cnt,作为系统唯一时间基准;每个延时任务分配独立句柄,第
本文分享了STM32H743双QSPI Flash下载算法的调试经验。项目采用W25Q256芯片存储TouchGFX图片资源,需确保Keil下载、验证和程序运行时读取数据一致。通过硬件排查发现一颗Flash芯片故障,更换后问题转为算法细节优化。关键调试方法是利用SRAM探针(0x2407F000)记录运行状态,精准定位问题在于写入与读取路径不一致。最终采用标准页编程和MemoryMapped验证策
本文介绍了如何在RT-Thread操作系统下使用APM32系列MCU的外设驱动。主要内容包括:1)使用ENV工具配置BSP工程开启板载外设(以SPI Flash为例);2)RT-Thread设备驱动框架的三层结构(I/O设备管理层、驱动框架层和驱动层);3)应用程序通过标准接口访问硬件的流程。文章强调官方已适配大部分外设驱动,开发者通常只需通过menuconfig配置即可使用,特殊情况下才需自行编
DHT11是一款低成本单总线数字温湿度传感器,采用3.3V/5V供电,通过单总线协议通信。其温度测量范围为0-50℃(±2℃精度),湿度范围20-90%RH(±5%精度),采样间隔需≥1秒。通信时序包括主机启动信号(18-30ms低电平)、传感器80μs应答、40bit数据传输(高电平时长区分0/1),数据包含湿度和温度的整数及校验值。使用时需外接4.7kΩ上拉电阻,STM32驱动代码需实现微秒级
本文介绍了基于STM32F103C8T6的电子密码锁系统设计方案。系统包含4×4矩阵键盘、OLED显示屏、EEPROM存储等模块,支持密码输入验证、修改密码、查看密码等功能。硬件连接部分详细说明了各外设与STM32的引脚对应关系,并提供了Keil编译和Proteus仿真的操作指南。系统使用24C02C EEPROM实现密码掉电保存,默认初始密码为111111,支持6位数字密码输入和3次错误锁定保护
STM32上跑通TinyML的技术文章大纲 硬件与开发环境准备 选择适合TinyML的STM32开发板(如STM32H7、STM32F4系列)安装STM32CubeIDE或PlatformIO开发环境配置必要的硬件外设(如传感器、摄像头模块)vcnviturvm1a.feishu.cn/wiki/YySCw6YPkiUB80kl7QXc7s41n3b vcnviturvm1a.feishu.cn/
标题:SysTick——Cortex-M内核的“心跳”定时器 摘要:SysTick是Cortex-M内核集成的24位递减定时器,为STM32提供基础时间基准。HAL_Delay()依赖SysTick中断每1ms递增计数器实现延时,RTOS(如FreeRTOS)通过其周期性中断触发任务调度。时钟频率变化需重配SysTick(如HAL自动调整),优先级通常设为最低以确保实时性。微秒级延时需借助硬件定时
【代码】nuttx实战项目:多路串口合并功能之十主app程序设计(copilot版本)
,本文基于 DshanMCU-103 开发板,学习韦东山 STM32 HAL 课程,整理定时器的基础知识,包括 PSC、CNT、ARR、CCR 的作用,定时周期计算,SysTick 与 CubeMX 配置,以及 PWM 输出控制三色灯的基本思路,方便后续使用 HAL 库开发时快速查阅。
DMA = Direct Memory Access,直接存储器访问,是STM32核心外设之一,核心作用是「硬件自动完成数据搬运」,完全不占用CPU资源,解决CPU在大量数据传输(如ADC采集、UART收发、SPI通信)中被占用、导致效率低下的问题。CPU 只需配置一次参数(源地址、目标地址、数据长度、模式),后续所有数据搬运全部由 DMA 硬件自动完成,搬运完成后触发中断通知CPU。整个过程 C
本文介绍了智能小车五路循迹模块的调试方法,重点分析了TCRT5000红外传感器和LM393比较器的工作原理。文章详细讲解了硬件接线方案、独立测试程序设计以及调试流程,包括电位器灵敏度调节和过线测试。针对项目实现,阐述了加权质心算法、极性配置和PID控制等关键技术,并提供了常见问题的解决方案。该模块调试中需特别注意电平极性、接线顺序和控制方向的一致性,通过分模块独立调试可有效定位问题
在STM32F405开发蓝牙接收功能时,发现接收缓存数组存在随机数据错误。经排查,蓝牙传输和DMA接收均正常,但数据从DMA环形缓冲区复制到程序缓存时出现异常。最终发现是由于默认1KB的栈空间不足,而函数内定义的1024字节局部数组导致栈溢出。解决方案包括:1. 在启动文件中将栈大小从0x400改为0x1000(4KB);2. 将大数组改为全局变量。修改后问题解决,说明嵌入式开发中需特别注意栈空间
1 准备工程源码 → 2 添加进编译器 → 3 配置lv_conf.h→ 4 对接 LCD 显示 → 5(可选)对接触摸 → 6 适配 FreeRTOS 节拍 + 任务 → 7 编译排错验证。
本文介绍了STM32串口通信的基础知识和实现方法。主要内容包括:1.串口通信基本概念,包括通信协议、硬件电路和时序参数;2.STM32的USART模块结构和工作原理;3.通过示例代码详细讲解了串口发送、接收以及HEX/文本数据包的收发实现。文章基于江协科技STM32教程编写,适合有一定单片机基础的读者学习,建议先掌握数字电路等基础知识。文中提供了完整的代码实现和硬件连接说明,可帮助读者快速掌握ST
(uint32_t *)manchester_buf,这里强转换是没有用的,DMA已经配置成Byte类型,最后底层还是按照Byte类型来寻址,这里仅仅是表示可传入的最大地址,DMA并不按照此数据类型取值。如图,DMA转PWM配置成Byte后,代码里传给DMA的数组也要是Byte类型,比如。
stm32
——stm32
联系我们(工作时间:8:30-22:00)
400-660-0108 kefu@csdn.net