描述
<p align="left"><strong>* 1</strong><strong>、项目功能介绍</strong></p>
<div align="center"><hr align="center" width="100%"></div>
<p align="left">1.点击按键能够显示当前温度和湿度;</p>
<p align="left">2.显示温湿度后,系统能够自动进入睡眠模式,能够通过按键再次唤醒;</p>
<p align="left"><strong>*2</strong><strong>、项目属性</strong></p>
<div align="center"><hr align="center" width="100%"></div>
<p align="left">复刻嘉立创EDA课程设计《桌面温湿度仪》 </p>
<p align="left"><strong>*3</strong><strong>、硬件部分</strong></p>
<div align="center"><hr align="center" width="100%"></div>
<p align="left"> 1.传感器部分</p>
<p align="left">使用盛思锐SHT40传感器模块,使用IIC通讯协议,由于模块上无添加上拉电阻,所以得单独添加上拉电阻。</p>
<p align="left"><img src="//image.lceda.cn/pullimage/HA1DzN97Q2eJJq3PEUFpB9mF3i2SmDAPerr4pQrt.png" alt="" width="322" height="281"><img src="//image.lceda.cn/pullimage/T0iKYBqOVX0RXYNd8zbCxWehxCjFy9j5AAyNF3lB.jpeg" alt="" width="339" height="178"></p>
<p align="left"> 2.温湿度显示部分</p>
<p align="left">由0.36寸数码管和移位寄存器构成,这样既减少了IO口的使用数量,还增强了IO口的驱动能力。</p>
<p align="left"><img src="//image.lceda.cn/pullimage/4GO5WfUorOBBLsgOawLL6mjpIGQLier3KvccU8d3.png" alt="" width="537" height="183"><img src="//image.lceda.cn/pullimage/qJ0dT1tn2NgzdQX6vYze1Fmodze4DSYPXmYfsYSC.png" alt="" width="535" height="345"></p>
<p align="left">3.电源部分</p>
<p align="left">使用两节5号电池和一个P沟道MOS构成,P沟道MOS管的主要作用是防止电池接反<span style="text-decoration:line-through">(这年头不会有人连5号电池都能装反吧)</span>。</p>
<p align="left"><img src="//image.lceda.cn/pullimage/3A7yXFEtYGicWCYViEOF6FSANSIb40Js44luaaN0.png" alt="" width="476" height="193"></p>
<p align="left">4.MUC</p>
<p align="left">根据以上的功能需求,需要MUC具备11个及以上的IO口,最好还具有IIC外设接口;除此之外,还同时需要具备由定时器、中断、睡眠模式等功能。综合需求,选用Arm Cortex-M0+内核的STM32G030K6T6即可满足需求。</p>
<p align="left"><img src="//image.lceda.cn/pullimage/6hNsbROBq8K9u7C8guwJkC5vpLltsSiJ6Pi6kmM6.png" alt="" width="865" height="237"></p>
<p align="left"><strong>*5</strong><strong>、软件部分</strong></p>
<div align="center"><hr align="center" width="100%"></div>
<p align="left">1.环境配置</p>
<p align="left">当有人问起你此生最大的编程BUG是什么?那难免会是“编程环境配置”。</p>
<p align="left">这里列举我遇到的问题,就是STM32G0XXX的芯片包装不上:</p>
<p align="left"><img src="//image.lceda.cn/pullimage/c0aCfdCdxbM2WcZTC2xS5bs2UFSq1N7Q2weThbjt.png" alt="" width="557" height="209"></p>
<p align="left">解决办法:下载安装旧版的芯片包。因为我的Keil环境我不再想去更改,但是版本又是2023年的,所以就不支持2024年最新的芯片包,所以我就根据历史版本下载了V1.4的芯片包就安装成功了。</p>
<p align="left"><img src="//image.lceda.cn/pullimage/RUOO7ys4AQhmotUxFqmvz7YFLzQdhmI2YIsSOSsV.png" alt="" width="565" height="470"></p>
<p align="left"> </p>
<p align="left"><strong>*6</strong><strong>、功能部分</strong></p>
<div align="center"><hr align="center" width="100%"></div>
<p align="left">下载嘉立创EDA课程中对应的综合例程后,其功能是按下唤醒按键后,先显示温度再显示湿度,循环两遍。个人觉得这样的显示效果不够直观,因为不能同时显示温度和湿度,所以我就更改成按下同时显示温度、湿度并延时一段时间。</p>
<p align="left">本来我还想在<strong>定时器更新中断回调函数HAL_TIM_PeriodElapsedCallback()</strong>中增加采集温湿度数据这个功能,但定时器单次定时太快,给的时间不够SHT40_Read_RHData()函数进行采集,所以就没有添加<span style="text-decoration:line-through">(因为HAL库真的不会)</span>。</p>
<p align="left">左:更改前 右:更改后</p>
<p align="left"><img src="//image.lceda.cn/pullimage/3hh6QoG9wh3C6L4YLXiEKeHqp2QQYXnYnDkxICco.png" alt="" width="787" height="326"></p>
<p align="left"> </p>
<p align="left"> </p>
<p align="left"> </p>
<p align="left"> </p>
<p align="left"> </p>
评论(0)