描述
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">* 1、项目功能介绍</h3>
<hr>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"><strong> 温湿度测量</strong>:温湿度检测仪能够精确地测量环境的温度和湿度,通常配备高精度的传感器,实时监测和记录环境变化。</p>
<p><strong> 显示和记录</strong>:仪器具备显示屏,可以实时查看当前的温湿度值,并记录数据以便分析环境变化。</p>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">*2、项目属性</h3>
<p style="line-height:1.8">本项目属于嘉立创暑期训练营开源项目,目的是记录学习及提升自己。</p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">* 3、开源协议</h3>
<hr>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8">GPL 3.0</p>
<h3 style="line-height:1.8">*4、硬件部分</h3>
<hr>
<p style="line-height:1.8">一、供电单元(电池供电+防反接保护)</p>
<p style="line-height:1.8"><img src="//image.lceda.cn/oshwhub/2313027ad5c040709ec56340081a5b3c.png" width="461" height="202"></p>
<p style="line-height:1.8">二、数码管显示及控制寄存器</p>
<p style="line-height:1.8"><img src="//image.lceda.cn/oshwhub/ee1196d1b82a49d4b46a8b7cabbc911c.png" width="463" height="303"></p>
<p style="line-height:1.8">三、MCU最小系统电路</p>
<p style="line-height:1.8"><img src="//image.lceda.cn/oshwhub/b89546cd795241598b958d78f41b9852.png" width="611" height="209"></p>
<p style="line-height:1.8">上图为stm32g030k6t6单片机的最基本电路原理图。包括MCU主控,晶振电路,复位电路和滤波电容。</p>
<p style="line-height:1.8">四、唤醒按键、测试LED、SHT40温湿度传感模块</p>
<p style="line-height:1.8"><img src="//image.lceda.cn/oshwhub/1398999af3d7410f8b43f22daf49d123.png" width="486" height="479"></p>
<p style="line-height:1.8">LED测试:测试电路连接是否正常,以及芯片是否能正常下载程序</p>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">*5、软件部分</h3>
<hr>
<p style="line-height:1.8">数码管显示主要内容:</p>
<div>/*</div>
<div>函数内容:数码管显示数据函数</div>
<div>函数参数:uint8_t row----行号</div>
<div>uint8_t column-列号</div>
<div>uint8_t value--显示数据</div>
<div>返回值:无</div>
<div>*/</div>
<div>void ShowNum(uint8_t row, uint8_t column, uint8_t value)</div>
<div>{</div>
<div>if(row == 1)</div>
<div>{</div>
<div>switch(column)</div>
<div>{</div>
<div>case 1://如果是第一排第一个</div>
<div>SN74HC595_Send_Data(SN_DIG,0xFE);</div>
<div>SN74HC595_Send_Data(SN_LED1,sgh_value[value]);//显示值对应16进制数</div>
<div>break;</div>
<div>case 2:</div>
<div>SN74HC595_Send_Data(SN_DIG,0xFD);</div>
<div>SN74HC595_Send_Data(SN_LED1,(sgh_value[value]|0x80));</div>
<div>break;</div>
<div>case 3:</div>
<div>SN74HC595_Send_Data(SN_DIG,0xFB);</div>
<div>SN74HC595_Send_Data(SN_LED1,sgh_value[value]);</div>
<div>break;</div>
<div>default:</div>
<div>break;</div>
<div>}</div>
<div>SysCtlDelay(1000);//大致延时50us</div>
<div>SN74HC595_Send_Data(SN_LED1,0x00);//消影,防止错位</div>
<div>}</div>
<div>else</div>
<div>{</div>
<div>switch(column)</div>
<div>{</div>
<div>case 1:</div>
<div>SN74HC595_Send_Data(SN_DIG,0xF7);</div>
<div>SN74HC595_Send_Data(SN_LED2,sgh_value[value]);</div>
<div>break;</div>
<div>case 2:</div>
<div>SN74HC595_Send_Data(SN_DIG,0xEF);</div>
<div>SN74HC595_Send_Data(SN_LED2,(sgh_value[value]|0x80));</div>
<div>break;</div>
<div>case 3:</div>
<div>SN74HC595_Send_Data(SN_DIG,0xDF);</div>
<div>SN74HC595_Send_Data(SN_LED2,sgh_value[value]);</div>
<div>break;</div>
<div>default:</div>
<div>break;</div>
<div>}</div>
<div>SysCtlDelay(1000);//大致延时50us</div>
<div>SN74HC595_Send_Data(SN_LED2,0x00);</div>
<div>}</div>
<div>}</div>
<p style="line-height:1.8">主程序主要内容:</p>
<div>while (1)</div>
<div> {</div>
<div> /* USER CODE END WHILE */</div>
<div> </div>
<div> /* USER CODE BEGIN 3 */</div>
<div>if(device_paramter.KeyStatus == KEY_SHAKE_STATE)</div>
<div>{</div>
<div>HAL_Delay(10);</div>
<div>if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5) == GPIO_PIN_RESET)</div>
<div>{</div>
<div>while(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5) == GPIO_PIN_RESET);</div>
<div> </div>
<div>SHT40_Read_RHData(&temperature,&humidity);//读取温湿度</div>
<div>device_paramter.Temp = temperature * 10;//放大温湿度</div>
<div>device_paramter.Humi = humidity * 10;</div>
<div>HAL_TIM_Base_Start_IT(&htim14); //开始定时器,显示两次数据 </div>
<div>device_paramter.sleepStatus = 0;//清除休眠标志</div>
<div>device_paramter.KeyStatus = KEY_NO_PRESS;//清除按下标志</div>
<div>}</div>
<div>}</div>
<div>else if(device_paramter.sleepStatus == 1)//显示结束,进入休眠</div>
<div>{</div>
<div>HAL_SuspendTick();//暂停滴答定时器,防止通过滴答定时器中断唤醒</div>
<div>HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI); /* 执行WFI指令, 进入睡眠模式 */</div>
<div>}</div>
<div> }</div>
<div> /* USER CODE END 3 */</div>
<div>}</div>
<div> </div>
<div>其它内容见附件。</div>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">*6、BOM清单</h3>
<hr>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">见附件</span></p>
<h3 style="line-height:1.8">*7、大赛LOGO验证</h3>
<hr>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"><img src="//image.lceda.cn/oshwhub/72d6ff37fa6b43ea89681c6fe40b2099.jpg" alt="" width="186" height="117"></p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">* 8、演示您的项目并录制成视频上传</h3>
<hr>
<p style="line-height:1.8">见附件视频。</p>
评论(0)