打印

关于STM32 SPI读取DS1302的问题????

[复制链接]
7729|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
biyveddd|  楼主 | 2010-1-8 16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前几天想用STM32的SPI接口来读取DS1302,但是调试了两天,读出的数据还是有问题,不是全为0,就全为1。还请各位大虾们帮忙看一下哈。

STM32_DS1302.rar

1.39 MB

沙发
winloop| | 2010-1-8 16:14 | 只看该作者
1302的接口速度没那么快

使用特权

评论回复
板凳
biyveddd|  楼主 | 2010-1-8 16:19 | 只看该作者
我也考虑到了这个问题,我时钟配置的很低:
  RCC_PLLConfig(RCC_PLLSource_HSE_Div2, RCC_PLLMul_4);,我用的是8MHZ的晶振,配置系统时钟应该是16MHZ的。

使用特权

评论回复
地板
biyveddd|  楼主 | 2010-1-8 21:40 | 只看该作者
还请各位大虾帮小弟看一下。

使用特权

评论回复
5
梅川酷子| | 2010-1-8 21:49 | 只看该作者
你还是省一个DS1302吧,用STM32内部RTC吧,方便得很呢.

使用特权

评论回复
6
biyveddd|  楼主 | 2010-1-8 22:11 | 只看该作者
用DS1302只是学习一下使用stm32的SPI,呵呵。

使用特权

评论回复
7
jeffkuang| | 2010-1-9 10:31 | 只看该作者
兄弟,好像你没有打开SPI的中断呀

SPI_I2S_ITConfig(SPI2, SPI_I2S_IT_TXE | SPI_I2S_IT_RXNE, ENABLE);

使用特权

评论回复
8
biyveddd|  楼主 | 2010-1-9 19:23 | 只看该作者
不用中断不可以吗?直接查询TXE,RXNE的状态??

使用特权

评论回复
9
yybj| | 2010-1-10 19:17 | 只看该作者
查询肯定可以的,问题应该不在这,要不你用中断试下,看行不行

使用特权

评论回复
10
biyveddd|  楼主 | 2010-1-11 14:36 | 只看该作者
有一个地方我一直不明白,就是DS1302是用SPI单线读写的,因此要求STM32的IO口是双向的,但是我看到官方的例程上面SPI配置成单线双向数据模式时,都是配置成复用传挽输出???当我往DS1302写一个字节后,再马上读DS1302发回的数据时的话,我是否要重新配置I/O口为输入模式???

使用特权

评论回复
11
香水城| | 2010-1-11 14:46 | 只看该作者
回10楼:配置为复用推挽输出即可,不必在接收数据时重新配置I/O口为输入模式。

使用特权

评论回复
12
biyveddd|  楼主 | 2010-1-11 14:53 | 只看该作者
当SPI使能时,是否一直有时钟输出??还是当发送或者接收数据时才有??

使用特权

评论回复
13
simplefan| | 2010-1-11 14:59 | 只看该作者
1302的接口速度没那么快
winloop 发表于 2010-1-8 16:14


这个比较靠谱

使用特权

评论回复
14
香水城| | 2010-1-11 15:02 | 只看该作者
当SPI使能时,是否一直有时钟输出??还是当发送或者接收数据时才有??
biyveddd 发表于 2010-1-11 14:53


有什么区别吗?

使用特权

评论回复
15
baidudz| | 2010-1-11 21:33 | 只看该作者
一直有,要进行SPI数据传输,肯定需要时钟

使用特权

评论回复
16
梅川酷子| | 2010-1-13 22:28 | 只看该作者
STM32的RTC掉电后,电流才1.3uA左右,很省电了,DS1302一边凉快去吧

使用特权

评论回复
17
biyveddd|  楼主 | 2010-1-20 10:55 | 只看该作者
我遇到的问题应该和16楼提出的没有什么联系吧?我没有使用STM32内部的RTC

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

27

帖子

1

粉丝