当前位置: 首页 > article >正文

嵌入式Linux的RTC读写操作应用

嵌入式Linux的RTC读写操作应用

  • 一、前提
  • 二、头文件引用
  • 三、设置RTC时间
  • 四、读取RTC当前时间

一、前提

  嵌入式开发中经常有碰到读取和修改时间的需求,所以会经常用到RTC这个功能。首先保证你的开发板上具有RTC这个模块和支持RTC且能正常工作,然后再进行应用程序的编写。你可以使用date命令和hwclock命令查看系统时间和RTC时间,初步检验是否具有RTC时钟。

二、头文件引用

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/rtc.h>

三、设置RTC时间

void setRtcTime(int year,int mon,int mday,int hour,int min,int sec)
{
    struct rtc_time rtc_tm;
    int fd = open("/dev/rtc0", O_RDONLY);

    ioctl(fd, RTC_RD_TIME, &rtc_tm); 
    rtc_tm.tm_year=year-1900;
    rtc_tm.tm_mon=mon-1;
    rtc_tm.tm_mday=mday;
    rtc_tm.tm_hour=hour;
    rtc_tm.tm_min=min;
    rtc_tm.tm_sec=sec;
    
    ioctl(fd,RTC_SET_TIME,&rtc_tm);
    close(fd);
}

四、读取RTC当前时间

void getRtcTime(void)
{
    struct rtc_time rtc_tm;
    int fd = open("/dev/rtc0",O_RDWR);
    if(fd<2)
    {
        printf("%s 设备文件打开失败.\n");
    }

    ioctl(fd, RTC_RD_TIME, &rtc_tm); //如果需要写进去此处改为RTC_SET_TIME,后面先赋值再ioctl

	printf("应用层读取的时间: %d-%d-%d %d:%d:%d\n",
            rtc_tm.tm_year+1900,
            rtc_tm.tm_mon+1,
            rtc_tm.tm_mday,
            rtc_tm.tm_hour,
            rtc_tm.tm_min,
            rtc_tm.tm_sec);
            
    close(fd);
    
}

http://www.kler.cn/a/403462.html

相关文章:

  • 【人工智能】用Python和NLP工具构建文本摘要模型:使用NLTK和spaCy进行自然语言处理
  • 【题解】—— LeetCode一周小结46
  • 如何在Linux上安装Canal同步工具
  • 嵌入式LVGL自定义纯数字键盘
  • 游戏陪玩系统开发功能需求分析
  • vue3+elementui-plus el-dialog全局配置点击空白处不关闭弹窗
  • kotlin 协程 job的cancel与cancelAndJoin区别
  • Linux(命令格式详细+字符集 图片+大白话)
  • java-图算法
  • 【SpringMVC原理分析】
  • k8s-NetworkPolicy
  • [游戏开发][Unity]Unity3D中的基本概念及关键组件解析
  • 【从零开始的LeetCode-算法】3354. 使数组元素等于零
  • 大数据实验4-HBase
  • 基于redis完成延迟队列
  • 蓝桥杯某C语言算法题解决方案(质因数分解)
  • 使用Cursor和Claude AI打造你的第一个App
  • c++调用 c# dll 通过 clr (详细避坑)
  • 数据加密使用方法
  • 使用Python编写一个简单的网页爬虫,从网站上抓取标题和正文内容。
  • 是时候谈谈Go的测试了
  • ArcGIS计算水库库容量
  • 曼昆《经济学原理》第八版课后答案及英文版PDF
  • 7.高可用集群架构Keepalived双主热备原理
  • 头歌-本关任务:使用GmSSL命令行,生成SM2私钥并对文件进行签名验证(第二关)。
  • android viewpager2 嵌套 recyclerview 手势冲突