pipdaivd 2024-08-17 10:51 采纳率: 0%
浏览 57
已结题

stm32读取ds1302读出来莫名其妙

用stm32读ds1302写的时序我波形抓了都是正常的,但就是读读出来莫名其妙的和clk同步很离谱

img


读的代码也都是跟着学写的,然后看着博客上一些自己写的

img

img


clk和ce我反正就正常推完模式,有没有遇到过同样问题的帮帮忙,想不明白

  • 写回答

4条回答 默认 最新

  • 檀越@新空间 2024-08-17 10:52
    关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    首先,我们需要了解DS1302和STM32之间的通讯机制。DS1302是一种串行数字传感器,它由一个电源驱动的一片电阻组成。当DS1302接收到信号时,会在电路中产生一系列的脉冲,这些脉冲会以频率变化的方式对应DS1302接收到的不同信号。

    关于你的问题,有几个可能的原因导致读出的字节和期待不符:

    1. 电源:如果电源有问题,可能会导致DS1302无法正确工作。

    2. 系统时钟:系统时钟不准确也可能影响DS1302的读写功能。你可以检查一下系统的时钟是否稳定,并且对齐到正确的频率。

    3. 噪声源:可能存在噪声干扰,导致DS1302输出的数据不稳定。

    针对以上问题,这里有一些解决方案供参考:

    1. 检查电源:确保电源供应稳定,并且时钟正确。尝试更换其他电源,或者更改时钟设置。

    2. 检查系统时钟:确认系统的时钟是否准确,是否与DS1302的时钟一致。可以尝试重置DS1302或时钟系统。

    3. 减少噪声源:尽量减少外部噪声的影响,例如关闭可能产生噪声的设备,或者使用抗干扰滤波器。

    如果你已经尝试过上述解决方案,但是问题依然存在,那么可能是DS1302内部的组件出现了问题。在这种情况下,可能需要寻找专门的硬件维修服务来修复DS1302。

    至于编程问题,DS1302上的字节和时钟是如何工作的?我可以为你提供更详细的解释。不过,我建议你在实际编程过程中不要直接复制别人的代码,而是先从官方文档或者开发者论坛开始学习。

    以下是原文中的部分内容,我会标记出加粗的部分,以方便你理解:

    在运行子程序之前,要确保选择的中断配置能处理DS1302的输入信号。从子程序启动的角度看,DS1302通常作为高速CPU访问外部数据接口的一个引脚。

    这是一个简单的例子,展示了如何向DS1302写入数据。你需要明确的是,DS1302实际上并不直接接收数据,而是在读取这个数据之后,发送一个新的脉冲给外部数据接口。

    如果你想深入了解DS1302的工作原理,我会推荐你阅读相关的专业书籍或者教程。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月17日
  • 创建了问题 8月17日