登录社区云,与社区用户共同成长
邀请您加入社区
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与CK6159A语音芯片的串口通讯项目中遇到隐蔽故障:当STM32发送异常数据时,CK6159A会永久卡死。通过逐层排查发现,问题根源在于原SDK配置的接收缓冲区过大,异常数据持续写入导致指针越界,触发驱动逻辑漏洞。最终通过调整缓冲区大小为略大于协议单帧长度(如32字节),配合200ms接收超时机制,使异常数据在溢出前被自动清空,完美解决问题。文章还分享了串口通讯容错的四
很多初学者会疑惑:明明我只是想让一个按键触发中断,为什么既要配置 EXTI,又要配置 NVIC?其实,EXTI和NVIC都和中断有关,但它们负责的层次不同。EXTI:负责检测外部中断事件NVIC:负责管理 CPU 是否响应这个中断EXTI 负责“中断从哪里来”NVIC 负责“CPU 要不要处理它”EXTI:负责检测外部中断触发条件NVIC:负责管理 CPU 是否响应中断EXTI 不配置:没有中断请
本项目基于STM32F103C8T6单片机开发智能农业大棚系统,主要功能包括: 环境监测:通过DHT11温湿度传感器、土壤湿度传感器、光敏传感器和二氧化碳传感器实时采集大棚环境数据 自动控制: 光照不足时自动开启LED补光 土壤湿度低于阈值时启动水泵灌溉 二氧化碳浓度过高时开启风扇换气 远程监控:通过ESP8266 WiFi模块连接手机APP,可查看环境数据并设置各参数阈值 数据显示:OLED屏幕
本项目基于STM32F103C8T6单片机开发了一套多功能环境监测系统,通过各类传感器实时采集温湿度(DHT11)、烟雾浓度(MQ-2)、一氧化碳(MQ-7)、PM2.5粉尘及光照强度等环境参数,数据通过TFT屏幕本地显示并经由ESP8266-01S WiFi模块上传至手机APP。系统支持远程阈值设置与报警功能,当任一参数超标时触发声光报警(蜂鸣器)。硬件设计包含原理图与PCB制作,软件采用模块化
坦白讲我没想到这个项目输出成博客,这四篇文章只有这寥寥几个字,深恶之都没有我学习外设的文章文字多,但其实也确实就是这样了,当我们具备做很多事情的基础之后,那么我们阐述的就是思路了就是一个更宏观的框架,只能是说把一些决定不错的细节讲一下不可能面面俱到,比如我怎么接收CAN的数据,怎么用联合体很巧妙的转换数据结构,如果这种问题放在专门讲CAN的章节还是可以,写在这里倒是有些违和了。依旧是CAN的数据收
摘要: 本文基于STM32的DMA(直接存储器存取)技术,详细介绍了其工作原理、存储分布及实际应用。DMA可在不占用CPU资源的情况下,实现外设与存储器或存储器之间的高速数据传输。文章首先阐述了STM32F103C8T6的存储器映像及DMA框图,包括总线矩阵、通道优先级和触发方式(软件/硬件)。随后通过两个实例演示DMA的应用: 存储器到存储器的数据转运:配置DMA通道实现数组间的快速拷贝,通过软
TinyML的定义与应用场景(边缘AI、低功耗设备)。STM32系列微控制器的特点(性能、功耗、生态支持)。为什么选择STM32运行TinyML(硬件加速、库支持、成本优势)。
本文介绍了芯片间串口数据通信的基本原理和实现方式。串口通信需要双方遵循相同的数据格式协议,采用二进制传输。数据帧由起始位(低电平)、数据位(低位先行)、校验位(可选)和停止位(高电平)组成。文章详细解释了8位/9位带/不带校验的数据帧格式,以及奇偶校验的工作原理(通过校验位使1的个数为奇数或偶数)。最后通过图示展示了从空闲状态到数据传输完成的全过程。
虽然 RAM 最后一个字节是 0x2000BFFF,但在 ARM 架构中,MSP 可以指向 0x2000C000(即 RAM 顶端之外的第一个字),此时栈是空的。当发生压栈操作(PUSH)时,指针会先减小再写入数据,从而回到合法的 RAM 区域内。因此,上限写 0x2000C000 是安全的标准做法。1、STM32F103VC跳转程序,判断栈顶地址时,为什么用 <= 0x2000C000?
所以采用下面的跳线,把BOOT0与VDD连在一起,将Mode 改为HotPlug。
摘要:本文介绍了STM32 GPIO的8种工作模式,重点讲解了输出和输入部分的应用。在输出部分,通过LED闪灯实验演示了如何配置GPIO为开漏输出模式控制LED亮灭;在输入部分,详细分析了保护二极管、上拉/下拉电阻的作用原理,并以按钮实验为例展示了输入上拉模式的应用。文章提供了完整的代码实现,包括GPIO初始化、时钟配置和输入输出控制,并解释了施密特触发器在抗干扰中的作用。通过这两个实验,帮助读者
关于log_node节点的代码,因为一些原因变的很简单了我们先说一下当前的代码,等之后在扩展一下,最开始想要实现的效果。
本文完成了 STM32 HAL USB HID 键盘的基本实现流程:CubeMX 开启 USB Device FS开启 USB_DEVICE HID 中间件修改 HID Report Descriptor 为键盘描述符修改 HID 接口协议为 Keyboard修改 USB 设备名称在 main.c 中扫描按键并发送键盘 Report完成后,STM32 插入电脑后会被识别为 USB HID 键盘。按
在上一节中,我们完成了整块STM32开发板的焊接、电源检测与清洗。板子硬件已经完全就绪,接下来就是烧录程序、验证整机功能。本开发板设计了两种独立的程序下载方式USB串口下载:无需仿真器,仅一根数据线即可烧录,适合快速量产、简单烧录;SWD仿真下载(ST-Link/DAP-Link):支持在线调试、高速烧录、Keil直烧,是开发调试首选方式。本文手把手带小白掌握两种烧录方法,并完成LED按键、DAC
上一节我们完成了PCB设计、DRC检测和Gerber生产文件导出,完成了电路板的软件设计全流程。本节进入硬件实操阶段,带大家完成PCB成品开箱、焊接工具准备、分模块分步焊接、逐级通电测试,彻底规避新手焊接短路、烧板、供电异常等问题。针对入门小白,本文采用先电源、后主控、最后外设的标准安全焊接流程,每焊完一个模块就测试一次,最大程度降低硬件损坏风险,非常适合零基础硬件学习者参考。严禁全板一次性焊接:
stm32
——stm32
联系我们(工作时间:8:30-22:00)
400-660-0108 kefu@csdn.net