树莓派PICO:DS1302时钟芯片(MicroPython)

本文介绍了如何在树莓派PICO的MicroPython环境中开发并解决DS1302时钟芯片的GPIO读写问题,涉及芯片数据格式的解读和存储策略。通过实际操作和代码分享,读者可以学习如何编写适用于DS1302的库文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备材料

  1. 树莓派PICO(MicroPython)
  2. DS1302时钟模块
  3. 0.96 OLED
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/4b787e6587a54df79fdfc0495ef4ce1a.jpeg#pic_center

DS1302简述

其实作为一个时钟芯片,DS1302的性能不算优异,这次写这篇文章也只是为了记录一下在MicroPython环境下编写的DS1302库文件的过程与中间的一些问题。
具体DS1302的参数和引脚等信息可以参考数据手册(文末 获取)和文章: 51单片机DS1302实时时钟

遇到问题

GPIO同时读写

首先第一个问题是芯片的DAT(I/O)引脚要同时进行读写操作,在开始的实验中,我发现GPIO在Pin.OUT模式下也可以进行读取,但是在编写程序时读取到的数据总是255(I/O引脚一直高电平),但是在这时如果单独将该引脚接入高低电平还是可以读取到内容。
为了解决这个问题,我用逻辑分析仪对I/O引脚的值进行读取,发现不论芯片I/O引脚输出什么,最终读到的都是高电平,由此才使用了另外一种方式:在每次读取过程时将GPIO重新初始化到Pin.IN模式进行读取。

芯片内部寄存器存储格式

在第一次进行读写操作成功时,我以为芯片的数据存储就是简单的十六进制存储即可,但是后来读出的格式切切实实告诉我我错了。时钟芯片考虑到时分秒与年月日各自的进位关系,对各自寄存器的存储格式也是各有不同,每个寄存器只有按照规定的格式写入,时间的增长方式才会符合预期。

最终效果

在这里插入图片描述

资料获取

git:https://github.com/LNfromNorth/DesktopClock/tree/main/OtherPy/DS1302

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值