我就知道可能八百年会有一位大哥来找这个驱动。
让我来猜猜为啥用这个。
嫌一般的RTC不够精准是吧,想用个带温度补偿的试试?
代码拿去,其实巨简单的。。。没啥好说的,而且只有基本功能。。。

from micropython import const
import mathRX8025T_I2C_ADDRESS  = const(50)
RX8025T_REG_SECOND   = const(0)
RX8025T_REG_MINUTE   = const(1)
RX8025T_REG_HOUR     = const(2)
RX8025T_REG_WEEKDAY  = const(3)
RX8025T_REG_DAY      = const(4)
RX8025T_REG_MONTH    = const(5)
RX8025T_REG_YEAR     = const(6)class RX8025T():def __init__(self, i2c):self.i2c = i2cself.tb = bytearray(1)self.rb = bytearray(1)self.buf = bytearray(7)self.DT = [0] * 8def  setReg(self, reg, dat):self.tb[0] = datself.i2c.writeto_mem(RX8025T_I2C_ADDRESS, reg, self.tb)def  getReg(self, reg):self.i2c.readfrom_mem_into(RX8025T_I2C_ADDRESS, reg, self.rb)return self.rb[0]def TOBCD(self, dat):n0=n1=0n0=dat%10n1=(dat//10)%10return (n1<<4|n0)def FROMBCD(self, dat):n0=n1=0n0=dat&0x0fn1=(dat>>4)*10return n0+n1def year(self, year = None):if year == None:return self.FROMBCD(self.getReg(RX8025T_REG_YEAR)) + 2000else:self.setReg(RX8025T_REG_YEAR, self.TOBCD(year%100))def month(self, month = None):if month == None:return self.FROMBCD(self.getReg(RX8025T_REG_MONTH))else:self.setReg(RX8025T_REG_MONTH, self.TOBCD(month))def day(self, day = None):if day == None:return self.FROMBCD(self.getReg(RX8025T_REG_DAY))else:self.setReg(RX8025T_REG_DAY, self.TOBCD(day))def weekday(self, weekday = None):if weekday == None:return int(math.log2(self.getReg(RX8025T_REG_WEEKDAY)))else:d=1<<weekdayself.setReg(RX8025T_REG_WEEKDAY, d)def hour(self, hour = None):if hour == None:return self.FROMBCDD(self.getReg(RX8025T_REG_HOUR))else:self.setReg(RX8025T_REG_HOUR, self.TOBCD(hour))def minute(self, minute = None):if minute == None:return self.FROMBCD(self.getReg(RX8025T_REG_MINUTE))else:self.setReg(RX8025T_REG_MINUTE, self.TOBCD(minute))def second(self, second = None):if second == None:return self.FROMBCD(self.getReg(RX8025T_REG_SECOND))else:self.setReg(RX8025T_REG_SECOND, self.TOBCD(second))def datetime(self, DT=None):if DT == None:self.i2c.readfrom_mem_into(RX8025T_I2C_ADDRESS, RX8025T_REG_SECOND, self.buf)self.DT[0] = self.FROMBCD(self.buf[6]) + 2000 self.DT[1] = self.FROMBCD(self.buf[5])self.DT[2] = self.FROMBCD(self.buf[4])self.DT[3] = int(math.log2(self.buf[3]))self.DT[4] = self.FROMBCD(self.buf[2]) self.DT[5] = self.FROMBCD(self.buf[1]) self.DT[6] = self.FROMBCD(self.buf[0]) self.DT[7] = 0return self.DTelse:self.buf[0] = self.TOBCD(DT[6])   self.buf[1] = self.TOBCD(DT[5])  self.buf[2] = self.TOBCD(DT[4])  self.buf[3] = 1<<DT[3] self.buf[4] = self.TOBCD(DT[2])   self.buf[5] = self.TOBCD(DT[1])   self.buf[6] = self.TOBCD(DT[0]) self.i2c.writeto_mem(RX8025T_I2C_ADDRESS, RX8025T_REG_SECOND, self.buf) #example   0->Sunday 1->Monday....  6->Saturday
if __name__ =='__main__':from machine import SoftI2C,Pinimport timei2c=SoftI2C(scl=Pin(13),sda=Pin(12))rr=RX8025T(i2c)#rr.datetime((2023,3,28,2,11,49,30,0))print(rr.datetime())

micropython RX8025T 驱动简单演示相关推荐

  1. Java简单演示悲观锁

    每博一文案 看过这样一句话,时间在不断的筛选你身边的人和事.当你什么都不在乎的时候,你的人生才刚刚开始. 当我们什么都不在乎时,会发现什么都可能会进行经历,但什么都一定会过去,起始都会离开的或早或晚吧 ...

  2. Qt 多线程的简单演示

    Qt 多线程的简单演示 任务:单击""开始""按钮将启动数个工作线程,线程由checkBox 来决定线程的启用或者关闭,各个线程循环打印数字,数字每秒累加1:单 ...

  3. JBoss 系列九十六:JBoss MSC - 简介及一个简单演示样例

    什么是 JBoss MSC JBoss MSC 即 JBoss Modular Service Container,是第三代 JBoss 产品 JBoss 7和WildFfly的内核,JBoss MS ...

  4. linux驱动简单介绍

     linux驱动简单介绍 驱动基本介绍 驱动.顾名思义就是"驱使硬件设备行动".设备驱动与底层硬件之间打交道,按照硬件设备的具体操作方式来读写设备寄存器,最终完成一系列操作. 设备 ...

  5. csrf攻击与防护—2用flask简单演示防范csrf攻击之referer

    接上篇 csrf攻击与防护-1用flask简单演示csrf攻击 以下是根据referer字段防止csrf攻击的新代码: bank.py import uuid from flask import re ...

  6. Micropython ESP32驱动CH455控制4位数码管

    Micropython ESP32驱动CH455控制4位数码管 1.硬件 CH455驱动4位共阴数码管的原理图如下所示. ESP32-S模块,用GPIO4作为SCL和GPIO16作为SDA. 2.软件 ...

  7. Linux驱动 简单的Linux驱动基础知识

    Linux驱动 简单的Linux驱动基础知识 一.简述         记--Linux驱动学习笔记. Linux驱动程序初始化硬件设备,并提供硬件控制接口给更上一层的应用调用. 例如使用QT应用程序 ...

  8. micropython esp32驱动舵机_PCA9685舵机控制板与MicroPython-ESP32-1Z实验室

    概要 阿凯在本文中讲解了如何使用MicroPython-ESP32通过PCA9685模块控制舵机旋转角度.同时也涉及到了MicroPython-ESP32的I2C资源与API讲解. 出品:1Z实验室 ...

  9. 【K210+micropython】驱动HS420561k-32四位数码管显示数字

    [K210+micropython]使用HS420561k-32四位数码管显示数字 文章目录 [K210+micropython]使用HS420561k-32四位数码管显示数字 相关知识准备 一.四位 ...

最新文章

  1. java 简单万年历_JAVA实现的简单万年历代码
  2. [4.9福建四校联考]
  3. python3 bytes和str转换,解决图片base64调用api的问题
  4. 百度“如流”开启智能办公模式,“四两拨千斤”开启差异化模式
  5. Quartz.Net进阶之四:CronTrigger 详述
  6. 对计算机网络用户而言 掌握网络,计算机网络的特点
  7. [剑指offer]面试题22:栈的压入、弹出序列
  8. python 怎么注释_python的代码怎么写注释
  9. SLAM和三维重建中的SFM区别
  10. soap python_Zeep: Python SOAP 客户端
  11. C++实现高质量游戏游戏!!!不点开你会后悔的!!!包括 买彩票游戏 勇者游戏 等 5个游戏
  12. JVM中的-Xms -Xmx -XXnewSize -XXMaxnewSize -Xmn -XXPermSize -XXMaxPermSize区别介绍
  13. 小程序loding动画组件封装及源码
  14. 微信小程序------API
  15. Apache安装时出现OS:拒绝访问的解决办法
  16. 使用 Google Apps 账号申请 GAE 的问题
  17. ubuntu中静态ip的修改配置
  18. STC12驱动PCF8575
  19. 对于传统教育和线上教育的思考
  20. linux m2硬盘驱动,Linux R720挂载M.2固态硬盘

热门文章

  1. Mac Os Monterey brew apache启动后一致断续error
  2. Hexo系列(四) NexT主题配置
  3. WPS找回未保存文档
  4. [GXYCTF2019]禁止套娃--详解
  5. TensorFlow 网络模型移植和训练指南
  6. 计算机基础知识1000题,计算机基础知识题库1000道,这一千道题比较好.doc
  7. 【Vue3】电商网站吸顶功能
  8. 华为交换机配置常用命令
  9. 数据结构(王道版本,主讲人:闲鱼学长)P19-P31
  10. 计算机应用教学总结,计算机教学总结