【GD32E503评测】Part4:屏幕和RTC代码融合
<p><strong>1.介绍</strong></p><p>想了一想,有屏幕那肯定要做一些正经的东西,然后就想到了先做个简单的RTC和屏幕的结合吧,因为官方提供了RTC和屏幕的例程,那融合一下就可以了。</p>
<p><strong>2.融合开始</strong></p>
<p>首先运行一下RTC的例程,结果如下图,第一次运行时需要自己输入时间。</p>
<p class="imagemiddle" style="text-align: center;"></p>
<p>然后直接开始融合,打开屏幕显示代码,把显示部分都屏蔽了,除了边框的显示。</p>
<p class="imagemiddle" style="text-align: center;"></p>
<p>然后直接拷贝RTC的函数声明。</p>
<p class="imagemiddle" style="text-align: center;"></p>
<p>再拷贝初始化部分,和函数定义部分。</p>
<p class="imagemiddle" style="text-align: center;"></p>
<p class="imagemiddle" style="text-align: center;"></p>
<p>然后拷贝RTC的中断函数。</p>
<p class="imagemiddle" style="text-align: center;"></p>
<p>最后再自己写一个屏幕显示字符串的函数,也是唯一一个自己写的代码哈。</p>
<pre>
<code>void lcd_rtc_display(uint32_t timevar)
{
uint32_t thh = 0, tmm = 0, tss = 0;
char rtc_time_array = {0};
/* compute hours */
thh = timevar / 3600;
/* compute minutes */
tmm = (timevar % 3600) / 60;
/* compute seconds */
tss = (timevar % 3600) % 60;
sprintf(rtc_time_array, " Time: %0.2d:%0.2d:%0.2d", thh, tmm, tss);
for(uint8_t i = 0;rtc_time_array != '\0';i++)
{
lcd_char_display((35+8*i), 20, rtc_time_array, char_format);
}
}</code></pre>
<p class="imagemiddle" style="text-align: center;"></p>
<p>最后拷贝到RTC时间刷新显示部分即可。</p>
<p class="imagemiddle" style="text-align: center;"></p>
<p>然后把显示函数放到主函数里循环就行了。</p>
<p class="imagemiddle" style="text-align: center;"></p>
<p>最终的效果如下图所示。</p>
<p class="imagemiddle" style="text-align: center;"></p>
<p><strong>3.总结</strong></p>
<p>这次融合非常快,因为代码基本没有冲突,拷贝过来直接用就可以了。后续会在这个Demo中添加其他功能,想在这个屏幕中播放视频哈~</p>
<p>这次融合的Demo代码:</p>
页:
[1]