当前位置: 首页 > news >正文

STM32空气检测系统项目中解决的问题

1.项目的开始

做这个项目的初衷,首先自己是小白,需要项目经验,同时老师布置了一个大作业,然后我的想法是这个大作业的作品是检测甲醛气体之类的。但我上网搜索之后发现一个辰哥单片机的博主,他做的那个空气质量检测项目还不错,然后决定复刻这个项目。

复刻项目的开始(声明代码一定要手敲)

首先你得选材,你的各个模块必须测试过,而且你必须十分的清晰各个模块代码以及手册,操作的·具体流程。选好模块之后,我的建议是可以用面包板测试一下这个系统是否能正常的运行(主要是检查自己的代码能否跑起来)。博主也是把各个模块测试完毕之后,再选择PCB打板。

2.模块的选择上

(1).基础功能:

在我第一次测试中,这个项目只能进行各个模块数值的OLED显示,还有按键的切换OLED页面进行阈值的设置,当浓度到达阈值时会报警。

(2).后续改进(问题的出现):

但后面我加上了ESP8266这个模块,因为我觉得项目写在简历上必须有点水平才行,加上这个模块后问题就多起来了。首先,最初的设计版本也是有ESP8266的但不知道为什么一开始的这个模块就有问题,连接上串口后发AT指令无法返回OK。后面直接又买了一块ESP8266-01s的同时买了一块烧录模块。我重新把固件烧录进去后,旧的那块ESP8266才起作用,但还有其他未知的问题,这里项目使用的是ESP8266-01S,使用后因为是USART串口通信,但单片机(STM32F103C8T6)只有三个串口,JW01使用了一个,ESP8266-01S使用一个,DC01使用一个,是不是刚刚使用完全。但我在加入ESP8266-01时为了观测是否能正常通信,我额外接了一个CH340串口通信模块,观察是否能正常接收到指令。那问题就来了,我必须要放弃一个模块,后面我是把JW01换成MS1100。解决问题的方法,1,模拟软件USART通信,2.间歇通信,3重新选择模块。我选择的是3.重新选择模块,为什么选择三,因为方法三最简单,最高效(省时间)。

(3).测试问题的解决:

测试环节我发现当我用ONENET平台下发数据时,下发风扇停止的指令老是卡住,系统直接卡死不动,当我用debug调试时发现程序卡死在

void HardFault_Handler(void) { /* Go to infinite loop when Hard Fault exception occurs */ while (1) { } }

我直接ai查起:得到的答案是大概率是栈的内存不足。

我把栈的大小从200改成400后问题解决,代码成功跑成。

最关键的一点debug调试这一项技能一定要会。

3.心得体会

其实还有很多注意事项,这里我不在细讲,但你自己要清楚做项目就是要解决各种问题,这是宝贵的经验,无论你用什么手段,重要的是解决问题。

http://www.cnnetsun.cn/news/93052.html

相关文章:

  • QQ空间历史说说完整备份指南:永久珍藏你的数字记忆
  • 十大MCP Server方案,让DevOps步入智能新时代
  • VUE3:深入浅出探究pinia、provide\inject在多层组件页面是怎么使用的
  • Molecular Operating Environment (MOE) 完整安装与配置指南
  • LobeChat能否用于生成直播话术?电商主播提词器
  • 终极C++网络编程:构建高性能HTTP服务的完整指南
  • 显卡驱动终极清理指南:一键彻底解决兼容性问题
  • Zotero GPT:用AI重新定义文献管理效率
  • LobeChat与LangChain结合应用:打造复杂AI工作流
  • 突破60帧束缚:原神性能优化工具深度解析
  • 云计算作业—-V L AN实验
  • 当连锁巡检“听懂人话”:VLM技术下的智能运营新场景
  • 责任链模式(Chain of Responsibility):实现事件或请求的逐级处理与传递
  • SMUDebugTool深度探索:解锁AMD Ryzen系统的隐藏性能
  • JavaScript 中的单例模式:利用闭包、IIFE 或 ES Modules 实现线程安全的单例
  • CORS 机制中的预检请求(Preflight Request):为什么 OPTIONS 请求总是先于复杂请求发送?
  • Google Drive文件下载终极指南:简单快速解决下载难题
  • 面对一个新领域,如何快速摸清门道?试试“一键生成”研究地图
  • 终极指南:5步实现全球付费内容免费阅读
  • GBase 8s数据库SYSTIMESTAMP表达式介绍(上)
  • 从“秒级”到“毫秒级”:金仓如何让InfluxDB的“时序神话”黯然失色?
  • zotero-style插件深度解析:从零打造高效文献管理生态
  • 5倍推理加速:Axolotl缓存策略如何终结重复计算瓶颈
  • LobeChat能否部署在华为云弹性云服务器?国产化替代实践
  • LobeChat备份与恢复策略:防止重要对话丢失
  • Access Token 生命周期管理:详细设计 Token 的获取、缓存、续期和过期处理机制
  • 客户群 ID 与业务 ID 映射:设计高性能数据库表结构,实现 ChatID 与内部业务标签的快速关联
  • 代码随想录算法训练营Day48 | 108.冗余连接、109.冗余连接II
  • 微信网页版访问困境突破:3步安装wechat-need-web插件实战指南
  • MFC扩展库BCGControlBar Pro v37.1——支持Visual Studio 2026