草庐IT

stm32cube出现Hardfault的调试方法(emwin死机)

stm32cube出现Hardfault的调试方法在STM32芯片开发中,当程序运行时出现HardFault异常,通常是由于以下原因引起的:程序中出现了无效的指令,比如指向不存在的内存地址或未初始化的指针;栈溢出,导致程序无法正常运行;部分寄存器值异常,例如SP(栈指针)、PC(程序计数器)、LR(链接寄存器)等;硬件问题,如时钟问题或存储器故障。当HardFault发生后,事后诸葛亮分析方法:首先,当程序异常时,将触发HardFault中断,进入HardFault_Handler,如下图所示:由于STM32中断前,处理器会将错误信息推送到堆栈上。该信息包括程序计数器、故障状态寄存器和处理器寄

STM32实现基于RS485的简单的Modbus协议

背景我这里用STM32实现,其实可以搬移到其他MCU,之前有项目使用STM32实现Modbus协议这个场景比较正常,很多时候都能碰到这里主要是Modbus和变频器通信最常见的是使用Modbus实现传感器数据的采集,我记得之前用过一些传感器都是Modbus协议这就需要MCU实现Modbus协议,不过实际使用的Modbus协议往往都是简化版本的可能只是几条Modbus协议格式的指令而已初学者,网上一搜Modubus协议,往往越看越糊涂原理图如下图所示,使用STM32UART2,采用485接口设计引出解释一下为什么这里的485电路设计的这么复杂这里考虑485带电插拔操作,以及客户要求隔离功能等,所以

stm32 串口多字节接收

如果不想看的可以直接使用git把我的代码下载出来,里面工程挺全的,后期会慢慢的补注释之类的码云地址:stm32学习笔记:stm32学习笔记源码如果不会使用git快速下载可以选择直接下载压缩包或者去看看git的使用git的使用(下载及上传_gitcode怎么下载文件_是小刘不是刘的博客-CSDN博客版权声明:本文为CSDN博主「是小刘不是刘」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_51426845/article/details/130949055因为现在很多设备都要的是多字节发送,和接收,所以我们

【STM32】 JR6001语音播放

目录一:介绍二:模块特征三:应用领域四:硬件参数五:引脚说明六:模块电路接口图七:模块电路实物图一:介绍    JR6001语音播放模块,自带USB接口,能够灵活的更换SPI-flash内的语音内容,省去了传统语音芯片需要安装上位机更换语音的麻烦,SPIFLASH直接模拟成U盘,跟拷贝U盘一样,非常方便。任何电脑系统都可以支持。二:模块特征1、支持MP3、WAV高品质音频格式,声音优美。2、24位DAC输出,动态范围支持90dB,信比85dB3、支持两线串口控制,AD控制4、USB更新语音文件,无需安装驱动,无需安装软件,直接拷贝,快速便捷。支持XP系统,WIN7、WIN8、WIN10系统。5

在学习STM32出现“ no target connected ”的解决方法

1、接线问题导致在编译内容后,点击LOAD时显示“notargetconnected”,再网上找办法时说是因为ST-Link版本问题需要进行更新,更新完成后发现还是出现“notargetconnected”,后来经过仔细检查发现是我的STM32和ST-Link的线接错了正确接线如下图所示:接线正确后,即可成功下载代码。2、ST-Link版本过低导致找到安装路径中的\ARM\STLink中ST-LinkUpgrade.exe,双击更新ST-Link注:在更新ST-Link的时候一定要把杜邦线拔掉,否则会出现“st-linkisnotintheDFUmode”这个问题。

基于STM32的儿童误锁车内远程报警系统(华为云IOT)

一、项目背景汽车发展历史汽车自上个世纪末诞生以来,已经走过了风风雨雨的一百多年。汽车经过百年历史的演变,已经在世界各地获得广泛的普及和应用,但是事物总会具有两面性,汽车方便了人们生活的同时也带来了不安全的因素。儿童的出行和乘车安全始终都是我国现代汽车安全技术研究的主要方向。随着乘车安全的普及,在一定程度上提高了公众对于自家孩子乘车的安全意识,许多家长都在后座配置了儿童座椅。但是仍无法避免儿童误锁车内导致伤亡的悲剧发生。由美国官方部门统计的数据,长时间车内滞留导致的死亡案例已成为其国内第二大非车祸导致死亡的原因。据统计,近三十年来,已经有超过九百名儿童因车内中暑而受伤,甚至死亡在美国,每年平均有

STM32单片机最小系统

目录一、定义二、STM32单片机最小系统的组成部分1.供电电路2.复位电路3.时钟电路(2个)4.Boot启动模式选择5.下载电路6.后备电池(不是必要的,但一般都会设计上)一、定义  单片机最小系统:使一个单片机(MCU)能正常启动和工作运行,并且能正常下载程序的最简电路。二、STM32单片机最小系统的组成部分1.供电电路名称(引脚)典型值VDD数字电源+3.3VVSS数字地0VDDA模拟电源+3.3VVSSA模拟地0  VDD和VDDA之间一般接一个简单的低通滤波器即可(RC,Π型即可)。  注意:因为STM32芯片的主频较高,所以将数字电源和模拟电源、模拟电源和模拟地给分开,一共需要4根

【stm32c8t6+esp8266上传温湿度到Onenet云平台】

stm32c8t6+esp8266上传温湿度到Onenet云平台最近做的一个小项目中需要将获取的数据到云平台,我选择的是onenet平台,下面会根据个人学习过程分享如何使用onenet平台以及如何通过stm32单片机与esp8266wifi的配合使用将我们的数据上传至onenet平台中一、onenet平台的使用onenet平台链接1、这是我们打开时的界面,首先我们需要注册一个账号/2、用注册的账号登录3、登录后点击控制台然后点多协议连接实验中我们是通过MQTT协议进行的在下面这个界面中点击添加产品,产品的信息根据自己需求来写就就行了创建成功然后进行设备的添加这样我们就成功的把设备添加到了我们的

关于学习STM32的三种方式

一、配置寄存器不少先学了51的朋友可能会知道,会有一小部分人或是教程是通过汇编语言直接操作寄存器实现功能的,这种方法到了STM32就变得不太容易行得通了,因为STM32的寄存器数量是51单片机的十数倍,如此多的寄存器根本无法全部记忆,开发时需要经常的翻查芯片的数据手册,此时直接操作寄存器就变得非常的费力了。但还是会有很小一部分人,喜欢去直接操作寄存器,因为这样更接近原理,知其然也知其所以然。(不是特别推荐,除非是特别感兴趣的小伙伴)二、标准库标准外设库(StandardPeripheralsLibrary)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器。因为STM32有非

STM32 HAL库函数——HAL_UART_Receive_IT()详解

文章目录函数源代码函数用法详解函数逐行解释函数源代码/***@briefReceiveanamountofdataininterruptmode.*@noteWhenUARTparityisnotenabled(PCE=0),andWordLengthisconfiguredto9bits(M1-M0=01),*thereceiveddataishandledasasetofu16.Inthiscase,Sizemustindicatethenumber*ofu16availablethroughpData.*@noteWhenUARTparityisnotenabled(PCE=0),and