您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 关于SPI写数据的程序疑问
本帖共有486个阅读者
发表帖子 发表投票 回复主题
关于SPI写数据的程序疑问
阿幺加油(论坛新手)
阿幺加油
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:131
积分:5
注册时间:2015/4/17
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
关于SPI写数据的程序疑问

*pSPI_FLG &= ~FLG2;     //将SPISEL2拉到0



while(!(*pSPI_STAT
& SPIF));//查看SPI传输状态是否完成



*pSPI_TDBR =
0x55;      //将数据送入SPI传输数据寄存器



*pSPI_FLG |=
FLG2;     //将SPISEL2拉到1,完成数据传输

我想请问的问题是,在写数据时为什么要将SPISEL2拉到0*pSPI_FLG &= ~FLG2;     //将SPISEL2拉到0,完成数据传输在将SPISEL2拉到1


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2015/5/8 11:43:26
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

blackfin上SPI片选有两种控制方式,一种是自动控制方式,就是在发送数据时,片选会每一个字节自动拉低。还有一种是手动控制方式,即每次发送数据前,将片选拉低,等整个数据发送完成后,再拉高,这种控制方式应用比较多,因为有一些命令是需要在命令完成前,始终啊保持SPI片选为低的,这样自动片选的每一个字节拉高拉低一次显然就不符合要求。

代码中*pSPI_FLG &= ~FLG2;   是控制SPISEL2片选的,在硬件上即为PF2接口。在发送数据前通过配置*pSPI_FLG &= ~FLG2;  将其拉到0,表示使能相连接的SPI设备。发送完数据后拉高,表示释放SPI设备的使能。具体可以看一下连接SPI设备的时序图。所有SPI时序配置都要符合要操作的SPI设备的时序。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2015/5/10 23:07:19
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154638 Call, 1 Queries, Processed in 0.013672 second(s),