OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 14662|回复: 5

STM32F103的SPI通信时钟SCLK的一些现象和疑问

[复制链接]

6

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-1-8
在线时间
2 小时
发表于 2014-9-9 13:02:13 | 显示全部楼层 |阅读模式
5金钱
之前发过一个帖子,当我是用STM32的SPI1(主)和SPI2(从)互相通信并将结果通过串口发出的时候,出现的现象是SPI1发送SPI2接收正常,但是SPI2发送SPI1接收却接收不到数据,在群里找大神请教了一下问题所在,解释的原因是因为当SPI1先发送,那么当SPI1发送完毕后,SCLK是处于空闲状态的,这时候SPI2是无法发送出数据的.我把程序改为SPI2先发,然后SPI1再发,然后SPI1接收,然后SPI2接收,这样一来程序就接受正常了.通过这个实验得出的结果是:主SPI的SCLK只有在发送的时候是有波形的,但是当接收的时候,主设备SCLK是没有波形的,我已经在实验中用示波器看过,while循环中只有SPI接受函数的时候SCLK没有变化一直是低电平,while循环中只有SPI发送函数的时候SCLK才有波形,所以如果让SPI2(从)可以正常的发送给SPI1(主),必须SPI2(从)先发送然后SPI1(主)在发送,这样主就可以提供给从一个时钟信号用来发送.但是疑问又来了,当STM32和外设AT45DB161进行SPI通信读写FLASH的时候,我看程序是主设备(STM32的SPI1)在发送完读取命令后,就没有在发送数据了,然后就开始一直读取AT45DB161中的数据,居然是可以读取成功的,就是说在和AT45DB161读取数据的时候,主设备发送完读取命令就没有在发送任何数据而是不断的只读取数据了,那么这时候SCLK是从哪里来的呢?如果这个时候主设备仍然可以读取的从设备发送来的数据,那么为什么第一个SPI1和SPI2通信的设备就不可以必须要从先发主后发,然后主才可以接收到从发送的数据呢?

最佳答案

查看完整内容[请看2#楼]

读的时候,也是主机产生SCK时钟的。 你看代码就知道了,SPI读,肯定是先写DR,然后读DR的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-9-9 13:02:14 | 显示全部楼层
读的时候,也是主机产生SCK时钟的。
你看代码就知道了,SPI读,肯定是先写DR,然后读DR的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-1-8
在线时间
2 小时
 楼主| 发表于 2014-9-9 13:42:21 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
非常感谢原子哥,回头我把代码整理好加上注释上传上来给大家回馈一下,SPI的DMA收发和非DMA收发(SPI1和SPI2通信)
回复

使用道具 举报

27

主题

259

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
金钱
387
注册时间
2014-8-19
在线时间
0 小时
发表于 2014-10-8 22:34:15 | 显示全部楼层
回复【3楼】lj250668420:
---------------------------------
坐等。。。。。。
回复

使用道具 举报

3

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2016-8-13
在线时间
14 小时
发表于 2016-12-2 16:18:19 | 显示全部楼层
好贴!!可惜了没有源码,受教了!有时候就是一些小细节,查起来的时候头都大了
回复

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2019-10-23
在线时间
42 小时
发表于 2020-4-22 18:06:49 | 显示全部楼层
lj250668420 发表于 2014-9-9 13:42
回复【2楼】正点原子:
---------------------------------
非常感谢原子哥,回头我把代码整理好加上注释上传 ...

兄弟,你的头回过来了没有,这都6年了...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 21:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表