御坂10032号 发表于 2024-9-3 23:09

[工业级智能控制MCU 匠芯创D133CBS] 7 - RTC 时钟测试

<p><strong><span style="font-size:22px;">简介</span></strong></p>

<p>&nbsp;</p>

<p>Real Time Clock (RTC) 模块用于日期时间的保存和更新,在无网络下为系统提供一份有效的日期和时间。通过备用电池供电,在断电场景下也可以一直计数和保存时间,同时还有闹钟唤醒的功能。在本章节我们将详细的对匠芯创D133CBS 的RTC时钟进行测试。</p>

<p>&nbsp;</p>

<p><strong><span style="font-size:22px;">提前准备工作</span></strong></p>

<p>&nbsp;</p>

<p>在使用RTC之前请确保J9也就是下图标红的地方插入了纽扣电池并且正常供电</p>

<p>&nbsp;</p>

<p><strong><span style="font-size:22px;">&nbsp; 配置步骤</span></strong></p>

<p>&nbsp;</p>

<p><strong>1-&nbsp;在 Luban-Lite 根目录下执行&nbsp;</strong><code class="hljs">scons --menuconfig</code>进入 menuconfig 的功能配置界面,按如下选择:</p>

<p> &nbsp;</p>

<p><strong>2- 在menuconfig 开启rtc的测试驱动</strong></p>

<p>&nbsp;</p>

<p> &nbsp;</p>

<p>此时位于<strong>bsp/examples/test-rtc </strong>将会被配置并且添加到编译的上下文中。</p>

<p>&nbsp;</p>

<p>&nbsp; &nbsp;</p>

<p>上述代码主要用于设置RTC的时钟以及打印设置后的时间,并且通过Finsh进行执行。</p>

<p>&nbsp;</p>

<p><strong>3- 创建时间打印任务(避免重复设置日期时间)</strong></p>

<p>我们自己创建一个输出当前时间的任务,用于每一秒向控制台输出时间</p>

<p>&nbsp;</p>

<pre>
<code class="language-cpp">#include &lt;rtthread.h&gt;
#include &lt;rtdevice.h&gt;
#include &lt;ulog.h&gt;
#include &lt;finsh.h&gt;
#include &lt;drivers/rtc.h&gt;
#include &lt;drivers/alarm.h&gt;
#include "aic_core.h"

void rtc_printf(void *agrs)
{
    struct tm *local_time;
    time_t now;
    while (1)
    {
      now = time(RT_NULL);
      local_time = localtime(&amp;now);
      rt_kprintf("date: %04d-%02d-%02d\n", local_time-&gt;tm_year + 1900, local_time-&gt;tm_mon + 1, local_time-&gt;tm_mday);
      rt_kprintf("time: %02d:%02d:%02d\n", local_time-&gt;tm_hour, local_time-&gt;tm_min, local_time-&gt;tm_sec);
      rt_thread_delay(1000);
    }
}

MSH_CMD_EXPORT(rtc_printf, rtc_printf);

int main(void)
{
    rt_thread_t tid = RT_NULL;
    tid = rt_thread_create("RTC_read", rtc_printf, RT_NULL, 1024, 20, 5);
    rt_thread_startup(tid);
    return 0;
}
</code></pre>

<p>&nbsp;</p>

<p><strong>4- 将代码烧录到开发板中</strong></p>

<p>&nbsp;</p>

<p><strong>5- 打开控制台输入test_rtc&nbsp;设置日期时间</strong></p>

<p> <strong>&nbsp;</strong></p>

<p><strong>6-控制台每隔一秒输出当前的时间</strong></p>

<p>&nbsp;</p>

<p> &nbsp;</p>

<p>那么目前开发板中设置的时间大概为 2024-11-08&nbsp; 01:01:33. 现在我将记录下当前的时间并且将开发板断电,等到明天早上在评论区更新一下明天的开发板内的时间</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><strong>历史测评链接</strong></p>

<p>&nbsp;</p>

<p>[工业级智能控制MCU 匠芯创D133CBS] 1 - 开箱及其环境搭建&nbsp;<a href="https://bbs.eeworld.com.cn/thread-1290588-1-1.html" target="_blank">https://bbs.eeworld.com.cn/thread-1290588-1-1.html</a></p>

<p>[工业级智能控制MCU 匠芯创D133CBS] 2 - 创建项目及其注意事项&nbsp;<a href="https://bbs.eeworld.com.cn/thread-1290861-1-1.html" target="_blank">https://bbs.eeworld.com.cn/thread-1290861-1-1.html</a></p>

<p>[工业级智能控制MCU 匠芯创D133CBS] 3 - GPIO-IO中断&nbsp;<a href="https://bbs.eeworld.com.cn/thread-1290902-1-1.html" target="_blank">https://bbs.eeworld.com.cn/thread-1290902-1-1.html</a></p>

<p>[工业级智能控制MCU 匠芯创D133CBS] 4-&nbsp; BUG 反馈 (SDK lunch11 包更新错误)&nbsp;<a href="https://bbs.eeworld.com.cn/thread-1290904-1-1.html" target="_blank">https://bbs.eeworld.com.cn/thread-1290904-1-1.html</a></p>

<p>[工业级智能控制MCU 匠芯创D133CBS] 5- 使用RTT-软件包结合IIC读取BH1750&nbsp;<a href="https://bbs.eeworld.com.cn/thread-1291002-1-1.html" target="_blank">https://bbs.eeworld.com.cn/thread-1291002-1-1.html</a></p>

<p>[工业级智能控制MCU 匠芯创D133CBS] 6 - PWM 输出 <a href="https://bbs.eeworld.com.cn/thread-1291463-1-1.html" target="_blank">https://bbs.eeworld.com.cn/thread-1291463-1-1.html</a></p>

御坂10032号 发表于 2024-9-3 23:10

<p>01:06:00</p>

御坂10032号 发表于 2024-9-4 16:21

<p>date: 2024-11-08<br />
time: 18:16:59</p>
页: [1]
查看完整版本: [工业级智能控制MCU 匠芯创D133CBS] 7 - RTC 时钟测试