Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
nuc980
RT-Thread Studio
RTC
NK-980IOT测评之RTC测试
发布于 2022-03-14 13:24:12 浏览:1314
订阅该版
[tocm] ### 测试环境 - 开发板:NK-980IOT V1.0 - 开发环境:RT-Thread studio 2.2.1 + NuWriter v1.18 - RT-Thread版本:4.0.5 ### 1 NUC980 RTC介绍 ## 1.1 概述 实时时钟(RTC)控制器提供实时时钟和日历信息,RTC控制器的时钟源来自外部32.768 kHz低速晶振。它还提供RTC报警功能,用户可以预设报警时间和报警日历。RTC时间和日历信息的数据格式均以BCD格式表示。而且在系统电源关闭时可以由独立的外部电源(一般是3.3V电池)进行供电。 ## 1.2 特点 - 支持实时计数器和日历计数器,用于RTC时间和日历检查。 - 支持时间(小时、分钟、秒)和日历(年、月、日)报警和报警设置。 - 可选择12小时或24小时模式。 - 支持闰年。 - 支持星期计数器。 - 支持32.768 kHz时钟源的频率补偿机制。 - 所有时间和日历信息均以BCD格式表示。 - 支持具有8个周期间隔选项1/128、1/64、1/32、1/16、1/8、1/4、1/2和1秒的周期性RTC时间刻度中断。 - 支持RTC时间和报警中断。 - 在产生报警或相关报警中断时,支持芯片从空闲或断电模式唤醒。 - 支持64字节的备用寄存器来存储用户的重要信息。 ## 1.3 框图  RTC的框图也比较简单,因为官方已经做好了RTC驱动,所以这里不列RTC的相关寄存器了。 ## 1.4 硬件电路 开发板上的RTC电路比较简单,主要是外部时钟晶振和电池供电两部分。  时钟源采用外部32.768KHz的晶振。  RTC外部电源接到CON2上,需要自己焊接一个排针,方便外接电池供电。 下面实物图已经外接了一个3.3V的电池来给RTC供电。  ### 2 创建工程 首先确认已经安装了NK-980IOT开发板的支持包  然后选择 文件-新建-RT-Thread项目  命名工程名,选择NK-980IOT开发板,确认创建工程。 ### 3 编译下载程序 关于如何下载程序参考下面文档和视频介绍。 [NK980IOT开发板RT-Thread开发指南](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/quick-start/nk-980iot/quick-start) [开发板视频介绍](https://www.bilibili.com/video/BV1cu411R7uX/) 下载程序的时候如果找不到uboot等支持文件,可以到rtthread源码里找。 接下来编译程序,然后将编译的rtthread.bin文件下载到开发板。 在下载程序的时候遇到的一个问题,程序一直无法执行。  程序下载到SDRAM里可以执行,而下载到SPI NAND却无法运行。从提示信息看NAND读取的程序空间大小是0x10000,而env环境文档里明明定义的是0x100000,少读了一个0,程序没有读取完导致无法执行。修改env文件,把读取大小多加一个0,然后下载,程序可以正常执行。  ### 4 设置RTC日期时间 程序上使用了LED5闪烁指示程序正在运行,使用key1按键控制是否打印输出日期和时间,这样方便进行RTC时间设置。但是运行程序后,设置日期和时间没有反应。  使用env工具生成Keil工程,在折腾了一番后发现使用Keil工程编译的程序RTC可以正常设置日期时间。在论坛高手的帮助下,现在这个问题已经解决,RTC驱动的问题,见以下解决方法。 [NUC980RTC无法设置日期时间的解决办法](https://club.rt-thread.org/ask/question/434941.html) 已经有了RTC驱动,设置日期和时间就很方便了,使用msh命令rtc_set_date设置日期(年 月 日)。例如rtc_set_date 2022 3 12设置日期2022年3月12日。使用msh命令rtc_set_time设置时间(时 分 秒)。例如rtc_set_time 12 10 30设置时间12:10:30。另外就是星期是自动跟随日期变化的,这一点非常方便,不用单独设置星期了。 当然,也可以使用函数设置日期和时间,函数在rtc.c文件里,如下: ``` set_date(rt_uint32_t year, rt_uint32_t month, rt_uint32_t day) ``` 例如调用函数set_date(2022,3,12);设置日期2022年3月12日。 ``` set_time(rt_uint32_t hour, rt_uint32_t minute, rt_uint32_t second) ``` 例如调用函数set_time(12,10,30);设置时间12:10:30。 ### 5 时间精度 对比网络时间设置RTC日期和时间。 [RTC设置.mp4](https://oss-club.rt-thread.org/uploads/20220314/b8a486b94872dd8e4f1a62f985336917.mp4) 断电2天后测试RTC时间,比标准时间快了8秒。相当于一天快4秒,一个月大概误差2分钟,比我之前STM32G0芯片做的RTC精度上要高一些,对于这个时间精度是可以接受的。 [48小时后测试RTC时间精度.mp4](https://oss-club.rt-thread.org/uploads/20220314/a50505b8bacf2ef395a9820a9138fc7d.mp4) ### 6 总结 NK980IOT的RTC使用起来非常方便,设置也很简单。结合RT-Thread使用,既可以msh命令设置,也可以使用函数设置。 设置日期的时候星期是自动设置的,这点很方便,之前做的RTC星期是需要单独设置的。 测试中用到按键和LED灯程序,直接使用的软件包,这就是RT-Thread的好处,各种软件包可以使用,很方便。避免了重复造轮子,节省了开发时间。 [测试源码](https://gitee.com/caikan/NK980IOT_RTC)
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
Kan
这家伙很懒,什么也没写!
文章
4
回答
18
被采纳
0
关注TA
发私信
相关文章
1
RTC驱动框架几点建议
2
求助:RTT在STM32F407上使用内置的RTC设置日期需重启生效,设置时间即时生效,有遇到同样问题的吗?
3
[新人试水] LPC1768 Nano3_9 添加RTC
4
STM32 关于RTC的问题
5
stm32f4xx-HAL BSP的RTC设置不对
6
关于STM32的RTC设置年份不正确的问题
7
RTT的RTC驱动调试
8
rtc驱动中的bkp模块起不到防止时间的重新设置
9
rtc时钟跑十几个小时后,比实际时间快几秒怎么解决
10
stm32如何断电之后开发板rtc时间继续往前跑
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
UART
ESP8266
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
10
个答案
3
次被采纳
xiaorui
3
个答案
2
次被采纳
winfeng
2
个答案
2
次被采纳
三世执戟
8
个答案
1
次被采纳
KunYi
8
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
lizimu
2
篇文章
9
次点赞
swet123
1
篇文章
4
次点赞
Days
1
篇文章
4
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部