Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Env
M2354
开发板评测
【NuMaker-M2354试用】RTC实验
发布于 2021-12-19 19:13:08 浏览:690
订阅该版
[tocm] ### 【NuMaker-M2354试用】RTC实验 #### 1.测评任务 测试M2354的硬件RTC,开启RTC功能,运用RT-Thread提供的bsp及库函数,实现一个RTC功能。 实现功能:初始化RTC时间,通过控制台每秒打印一次时间。 #### 2.测评硬件 本次使用的硬件是Nuvoton官方的NuMaker-M2354开发板 mcu型号:M2354KJFAE 内核:cortex-M23 ![01_hardware.jpg](https://oss-club.rt-thread.org/uploads/20211219/ed649bff904b60ea2c7c19b3fd7eccf1.jpg.webp) #### 3.环境搭建及工程创建 资源下载 rt-thread master https://gitee.com/rtthread/rt-thread/tree/master/ env https://www.rt-thread.org/ 驱动、官方资料等 https://www.nuvoton.com.cn/board/numaker-m2354/?index=0 M2354 bsp下载 https://gitee.com/OpenNuvoton/m2354bsp 环境搭建及软件安装具体可看坛友文章:https://club.rt-thread.org/ask/article/3168.html 刚下载下来的bsp工程包含了太多的rt-thread的组件,所以需要对工程仅从裁剪。裁剪通过env工具进入menuconfig菜单栏进行,最终会修改rtconfig.h这个配置文件。 创建的基础工程下载地址:https://gitee.com/sixer111111/m2354_rtt_base.git 工程结构如下,稍微简洁美观了一些。 ![02_prj.jpg](https://oss-club.rt-thread.org/uploads/20211219/d75d357ed9b160d285ef4c52f3032a31.jpg.webp) #### 4.主要函数调用 ```c //设置日期,年、月、日 rt_err_t set_date(rt_uint32_t year, rt_uint32_t month, rt_uint32_t day) //设置时间,时、分、秒 rt_err_t set_time(rt_uint32_t hour, rt_uint32_t minute, rt_uint32_t second) //获取当前时间 time_t time(time_t *t) ``` #### 5.代码 ```c //rtc_sample.c #include
#include
//线程配置 #define RTC_THREAD_PRIORITY 20 #define RTC_THREAD_STACK_SIZE 512 #define RTC_THREAD_TIMESLICE 5 rt_thread_t rtc_thread; void rtc_thread_entry(void* p) { time_t now; //循环打印时间 while(1) { rt_thread_mdelay(500); now = time(RT_NULL); rt_kprintf("%s\n", ctime(&now)); rt_thread_mdelay(500); } } int rtc_sample(void) { rt_err_t ret = RT_EOK; //设置日期和时间 rt_kprintf("[RTC Test]RTC Test Start...\n"); rt_kprintf("[RTC Test]Set RTC 2017-04-01 12:30:46\n"); ret = set_date(2021, 12, 19); if(ret != RT_EOK) { rt_kprintf("[RTC Test]Set RTC Date failed\n"); return RT_ERROR; } ret = set_time(19, 02, 46); if(ret != RT_EOK) { rt_kprintf("[RTC Test]Set RTC Time failed\n"); return RT_ERROR; } //创建rtc时间打印线程 rtc_thread = rt_thread_create("rtc_thread", rtc_thread_entry, RT_NULL, RTC_THREAD_STACK_SIZE, RTC_THREAD_PRIORITY, RTC_THREAD_TIMESLICE); if(rtc_thread != RT_NULL) { rt_thread_startup(rtc_thread); } return 0; } MSH_CMD_EXPORT(rtc_sample, thread sample); ``` ```c //main.c没有做改变 /**************************************************************************//** * * @copyright (C) 2019 Nuvoton Technology Corp. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2020-8-26 Wayne First version * ******************************************************************************/ #include
#include
#include
/* defined the LEDR pin: PD3 */ #define LEDR NU_GET_PININDEX(NU_PD, 3) int main(int argc, char **argv) { #if defined(RT_USING_PIN) int counter = 100; /* set LEDR pin mode to output */ rt_pin_mode(LEDR, PIN_MODE_OUTPUT); while (counter--) { rt_pin_write(LEDR, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(LEDR, PIN_LOW); rt_thread_mdelay(500); } #endif return 0; } ``` #### 6.编译运行 ```shell \ | / - RT - Thread Operating System / | \ 4.0.4 build Dec 19 2021 11:47:06 2006 - 2021 Copyright by rt-thread team msh >rtc_sample [RTC Test]RTC Test Start... [RTC Test]Set RTC 2017-04-01 12:30:46 msh >Sun Dec 19 19:02:46 2021 Sun Dec 19 19:02:47 2021 Sun Dec 19 19:02:48 2021 Sun Dec 19 19:02:49 2021 Sun Dec 19 19:02:50 2021 Sun Dec 19 19:02:51 2021 ``` #### 7.实验现象 led闪烁,串口控制台里输入mesh指令 `rtc_sample` ,每隔1秒打印出日期时间。实验正常。 #### 8.测评代码 基础工程中新建 rtc_sample.c 文件,放入文章中的代码即可编译下载运行。 #### 9.测评文章 #### 10.测评心得 RTT master通过 BSP 把一切都封装好了,给用户提供了简洁易用的 API,真的非常方便,而且env工具也简单易用。但是配置修改起来对新手可能特别麻烦,希望有一个专门讲解 rtt master 工程结构以及相关配置功能讲解的资料可以学习。
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
sixer
这家伙很懒,什么也没写!
文章
2
回答
2
被采纳
0
关注TA
发私信
相关文章
1
用scons构建代码出现问题
2
求助用scons生成不了mdk工程
3
关于使用scons编译的问题
4
关于scons 编译CPP问题求教
5
scons编译出现警告信息
6
SCons生成MDK5工程出错
7
realtouch的scons问题
8
SCons的PreAction能用吗?
9
scons 编译时出错。
10
求教:关于scons构建rtt时的两个问题
推荐文章
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
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
xiaorui
1
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部