OpenEdv-开源电子网

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

STM32 spi问题

[复制链接]

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
发表于 2012-11-28 17:18:53 | 显示全部楼层 |阅读模式
请问当STM32  spi1 作为主机,与从机连接后,主机是怎么提供时钟的
是不是配置完SPI后SCK就直接输出时钟了,还是自己在SCK脚那提供个时钟,
从属菜鸟问题
努力?奋斗
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2012-10-15
在线时间
4 小时
发表于 2012-11-28 19:00:33 | 显示全部楼层
是的, SPI有个寄存器是配置 传输速度的 ,PCLK2分频后做为时钟, 分频系数自己定.
回复 支持 反对

使用道具 举报

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
 楼主| 发表于 2012-11-28 19:27:44 | 显示全部楼层
回复【2楼】wkong501:
---------------------------------
PLCK2时钟就是SPI主模式时SCK脚输出的时钟吗
努力?奋斗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-11-28 23:26:10 | 显示全部楼层
往DR写数据,才会产生时钟!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
 楼主| 发表于 2012-11-29 10:37:06 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
我用STM32的SPI2与AD73360相接,
AD73360提供时钟,STM32为从模式,我往AD73360写数据和接收数据,
那AD73360是不是不能一直提供时钟啊
努力?奋斗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-11-29 14:21:07 | 显示全部楼层
是吧,没用过这个。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
 楼主| 发表于 2012-11-29 14:45:11 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
原子哥,那当STM32 为从模式,AD73360提供时钟,
写数据,读数据还能用下面的函数吗?
u8 SPIx_ReadWriteByte(u8 TxData)
{
u8 retry=0;  
while((SPI1->SR&1<<1)==0)//等待发送区空
{
retry++;
if(retry>200)return 0;
}   
SPI1->DR=TxData;     //发送一个byte 
retry=0;
while((SPI1->SR&1<<0)==0) //等待接收完一个byte  
{
retry++;
if(retry>200)return 0;
}        
return SPI1->DR;          //返回收到的数据     
}
努力?奋斗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-11-29 17:33:08 | 显示全部楼层
这我就没试过了, 呵呵。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
 楼主| 发表于 2012-11-29 21:05:01 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
那原子哥,读SPI->DR寄存器会不会读到发送的数据啊,发送和接收共用一个移位寄存器
努力?奋斗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-11-29 21:44:35 | 显示全部楼层

应该不会,你试试看。

我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
 楼主| 发表于 2012-11-29 22:01:17 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
我用从模式的SPI给主模式AD73360发送控制字,可是我读AD73360发来的数据就是我发送的数据
努力?奋斗
回复 支持 反对

使用道具 举报

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
 楼主| 发表于 2012-11-30 11:33:40 | 显示全部楼层
回复【11楼】原味_郭:
---------------------------------
回复【10楼】正点原子:
---------------------------------
原子哥能给我解释一下吗?
1、SPI_Direction_2Lines_FullDuplex  全双工
2、SPI_Direction_2Lines_RxOnly  双线只接收
3、SPI_Direction_1Line_Rx  单线双向接收
4、SPI_Direction_1Line_Tx  单向双向发送
努力?奋斗
回复 支持 反对

使用道具 举报

52

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2012-4-26
在线时间
17 小时
 楼主| 发表于 2012-12-3 10:59:58 | 显示全部楼层
如果主设备源源不断的给从设备提供时钟,从设备可不可以先发数据啊
努力?奋斗
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-19 04:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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