描述
<h1>0.前期准备</h1>
<p>因为之前没用过G0系列的芯片,要在KEIL那里下个<a href="https://www.keil.arm.com/packs/stm32g0xx_dfp-keil/devices/" target="_blank">固件包</a>,点击download下面的STM32G0xx_DFP 1.5.0等待下载完成安装上去就可以在KEIL里面编译基于G0的项目了。固件包我记得群里面好像有,网络不佳的情况去找找其他的路径下载固件包。</p>
<h1>1.硬件设计</h1>
<p>抄官方的原理图,有些0805封装的元器件换成了0603,手工焊接有些困难(之前花了几十块钱买了一个焊台,用着舒服滴很呐)。</p>
<h1>2.软件设计</h1>
<p>暑假在家太忙了,不想写代码,这次代码我抄立创官方的<a href="https://www.yuque.com/wldz/jlceda/ul1wcz7n5dgt6s60" target="_blank">代码示例</a>,官方的代码示例是上面显示湿度,下面显示温度,不符合我硬件电路的设计预期,动手改了改。</p>
<h2>2.1改数码管显示</h2>
<p>在<code>main.h</code>里面发现了设备参数的结构体</p>
<pre><code>struct DEVICE_PARAMTER
{
volatile uint8_t KeyStatus;
volatile uint8_t sleepStatus;
uint16_t Temp;
uint16_t Humi;
};
extern struct DEVICE_PARAMTER device_paramter;</code></pre>
<p>看英文猜个大概Temp是温度的意思,Humi是湿度的意思。
在<code>tim.c</code>找到中断回调函数<code>void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)</code>把原本代码</p>
<pre><code> if(updata_flag <= 5000)
{
ShowNum(1,1,(device_paramter.Temp/100));
ShowNum(1,2,(device_paramter.Temp / 10 % 10));
ShowNum(1,3,device_paramter.Temp%10);
}
else if(updata_flag <= 10000)
{
ShowNum(2,1,(device_paramter.Humi/100));
ShowNum(2,2,(device_paramter.Humi / 10 % 10));
ShowNum(2,3,device_paramter.Humi%10);
}
</code></pre>
<p>改成这样</p>
<pre><code> if(updata_flag <= 5000)
{
ShowNum(2,1,(device_paramter.Temp/100));
ShowNum(2,2,(device_paramter.Temp / 10 % 10));
ShowNum(2,3,device_paramter.Temp%10);
}
else if(updata_flag <= 10000)
{
ShowNum(1,1,(device_paramter.Humi/100));
ShowNum(1,2,(device_paramter.Humi / 10 % 10));
ShowNum(1,3,device_paramter.Humi%10);
}
</code></pre>
<p>完成了</p>
<h1>3.成品展示</h1>
<p><img src="//image.lceda.cn/oshwhub/d11de0c098754bfbbc3f7c0d89e5c00b.jpg" alt="2700kb571916001773214871.jpg"></p>
<p><img src="//image.lceda.cn/oshwhub/75944a7123704658926c346df729cc80.jpg" alt="3500kb386273978482613682.jpg">
(等我以后有时间试试freertos重写代码玩玩)</p>
评论(0)